数字化技能提升教程,数字化时代生存宝典

首页 / 开发 / 后端开发 / PHP教程

PHP stdClass类

浏览:397
PHP教程
PHP教程
类型:后端开发

PHP教程提供了关于PHP语法、变量、函数、流程控制等概念的详细指导,同时介绍了常见的Web开发技术,如数据库操作、表单处理、会话管理等。通过学习PHP教程,您可以掌握如何使用PHP构建动态网页、开发Web应用程序,并了解如何与数据库进行交互、处理用户输入以及实现用户认证和授权等功能。

PHP中的stdClass类是PHP具有动态属性的通用空类,它是PHP中的标准类,此类的对象可以使用 new 运算符实例化,也可以通过类型转换为对象创建。stdClass类没有任何成员变量或方法,它的主要作用是作为一个通用的匿名对象,用于临时存储和传递数据。

一、实例

几个 PHP 函数也会创建此类的实例,比如 json_decode()、mysqli_fetch_object() 或 PDOStatement::fetchObject()。

1、json_decode()函数可以将JSON字符串解码为PHP对象或数组。如果传递给该函数的参数是一个有效的JSON字符串,则它将返回一个stdClass对象的实例。例如:

$json = '{"name":"John","age":30,"city":"New York"}';
$obj = json_decode($json);
echo $obj->name; // 输出 "John"

2、mysqli_fetch_object()函数可以从结果集中获取一行作为stdClass对象的实例。例如:

$result = mysqli_query($conn, "SELECT * FROM users");
$row = mysqli_fetch_object($result);
echo $row->username; // 输出 "johndoe"

3、PDOStatement::fetchObject()方法可以从结果集中获取一行作为stdClass对象的实例。例如:

$stmt = $pdo->query("SELECT * FROM users");
$row = $stmt->fetchObject();
echo $row->username; // 输出 "johndoe"

尽管没有实现 __get()/__set() 魔术方法,但此类允许动态属性且不需要 #[\AllowDynamicProperties] 属性。

二、类摘要

class stdClass {
}

此类没有方法和默认属性。

1、通过类型转换为对象创建

<?php
$obj = (object) array('foo' => 'bar');
var_dump($obj);

以上示例会输出:

object(stdClass)#1 (1) {
["foo"]=>
string(3) "bar"
}

2、通过 json_decode() 创建

<?php
$json = '{"foo":"bar"}';
var_dump(json_decode($json));

以上示例会输出:

object(stdClass)#1 (1) {
["foo"]=>
string(3) "bar"
}

3、声明动态属性

<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);

以上示例会输出:

object(stdClass)#1 (2) {
["foo"]=>
int(42)
["1"]=>
int(42)
}
广告合作

广告合作

QQ群号:4114653

QQ群号:4114653

温馨提示:

  1. 本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。
  2. 本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。