-
青春有我
stdClass是PHP的泛型空类,有点像Object在Java或object用Python(编辑:但实际上并没有用作通用基类;谢谢@Ciaran for 指出这一点).它适用于匿名对象、动态属性等。考虑StdClass的一种简单方法是替代关联数组。参见下面的示例,该示例显示了如何json_decode()允许获取StdClass实例或关联数组。在这个例子中也没有显示,SoapClient::__soapCall返回StdClass实例。<?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中的动态特性想要更多的例子。
-
qq_花开花谢_0
stdClass只是在将其他类型转换为对象时使用的泛型“空”类。不管其他两个答案怎么说,stdClass是不PHP中对象的基类。可以很容易地证明这一点:class Foo{}$foo = new Foo();echo ($foo instanceof stdClass)?'Y':'N';// outputs 'N'我不相信PHP中有一个基本对象的概念
-
至尊宝的传说
stdClass是另一个很好的PHP特性。您可以创建一个匿名PHP类。让我们检查一个例子。$page=new stdClass();$page->name='Home';$page->status=1;现在,假设您有另一个类,它将使用页面对象初始化并在其基础上执行。<?phpclass PageShow {
public $currentpage;
public function __construct($pageobj)
{
$this->currentpage = $pageobj;
}
public function show()
{
echo $this->currentpage->name;
$state = ($this->currentpage->status == 1) ? 'Active' : 'Inactive';
echo 'This is ' . $state . ' page';
}}现在,您必须使用Page对象创建一个新的PageShow对象。这里不需要为此编写一个新的类模板,您只需使用stdClass动态创建一个类。 $pageview=new PageShow($page);
$pageview->show();