什么是 PHP 中的 stdClass?

2022-08-30 05:45:07

请定义什么是。stdClass


答案 1

stdClass只是一个泛型“空”类,在将其他类型强制转换为对象时使用。不管其他两个答案怎么说,都不是PHP中对象的基类。这可以很容易地证明:stdClass

class Foo{}
$foo = new Foo();
echo ($foo instanceof stdClass)?'Y':'N';
// outputs 'N'

我不相信PHP中有一个基本对象的概念


答案 2

stdClass是PHP的通用空类,有点像Java或Python(编辑:但实际上没有用作通用基类;感谢@Ciaran指出这一点)。Objectobject

它对于匿名对象,动态属性等非常有用。

考虑 StdClass 的一种简单方法是作为关联数组的替代方案。请参阅下面的示例,该示例显示了如何允许获取 StdClass 实例或关联数组。同样,但不在此示例中显示,返回一个 StdClass 实例。json_decode()SoapClient::__soapCall

<?php
//Example with StdClass
$json = '{ "foo": "bar", "number": 42 }';
$stdInstance = json_decode($json);
echo $stdInstance->foo . PHP_EOL; //"bar"
echo $stdInstance->number . PHP_EOL; //42
//Example with associative array
$array = json_decode($json, true);
echo $array['foo'] . PHP_EOL; //"bar"
echo $array['number'] . PHP_EOL; //42

有关更多示例,请参阅 PHP 和 StdClass 中的动态属性


推荐