什么是PHP中的stdClass?
请定义stdClass
是什么。
stdClass
是PHP的通用空类,有点像Java中的Object
或Python中的object
( 编辑:但实际上并未用作通用基类;感谢@Ciaran指出了这一点)。
这对匿名对象,动态属性等非常有用。
考虑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中的动态属性。
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;
现在认为你有另一个类,它将使用一个页面对象进行初始化并基于它执行。
<?php
class 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';
}
}
现在你必须用页面对象创建一个新的PageShow对象。
在这里,您无需为此编写新的类模板,只需使用stdClass即时创建类即可。
$pageview=new PageShow($page);
$pageview->show();
链接地址: http://www.djcxy.com/p/9841.html