stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类。stdClass是PHP的一个基类,所有的类几乎都继承 这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时,这个基类又有一个特殊的地方,就是没有方法。凡时用new stdClass()的变量,都不可能会出现$a->test()这种方式的使用。PHP5的对象的独特性,对象在任何地方被调用,都是引用地址型 的,所以相对消耗的资源会少一点。在其它页面为它赋值时是直接修改,而不是引用一个拷贝。
把数组变成对象实例:
<?php
$array = array('name' => 'one',
'sex' => 'two',
'old' => 'three'
);
$arrayobject = arrayToObject($array);
echo $arrayobject->name; // one
另外
<?php
class EmptyClass {
}
$object = new EmptyClass();
if ($object instanceof stdClass) {
echo 'yes';
}else{
echo 'no';
}
执行代码,输出”no”,这个例子充分说明了stdClass类并不是所有类的基类。它仅仅是PHP的一个保留类,或者说一个类似于strlen函数这样的一个角色。
stdClass类是PHP的一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL,可以使用其传递变量参数,但是没有可以调用的方法。stdClass类可以被继承,只是这样做没有什么意义。
说白了:
它是PHP提供的一个基类,就是一个空白的类.里面什么都没有.我们可以实例化它.然后定义一系列的变量,通过它来进行变量的传递.但是,由于实例化后不能添加方法.所以是不允许我们再添加任何方法的了.
<?
$obj = new stdClass;
$obj->a = 1;
$obj->b = 2;
把数组变成对象实例:
<?php
$array = array('name' => 'one',
'sex' => 'two',
'old' => 'three'
);
$arrayobject = arrayToObject($array);
echo $arrayobject->name; // one
另外
<?php
class EmptyClass {
}
$object = new EmptyClass();
if ($object instanceof stdClass) {
echo 'yes';
}else{
echo 'no';
}
执行代码,输出”no”,这个例子充分说明了stdClass类并不是所有类的基类。它仅仅是PHP的一个保留类,或者说一个类似于strlen函数这样的一个角色。
stdClass类是PHP的一个内部保留类,初始时没有成员变量也没成员方法,所有的魔术方法都被设置为NULL,可以使用其传递变量参数,但是没有可以调用的方法。stdClass类可以被继承,只是这样做没有什么意义。
说白了:
它是PHP提供的一个基类,就是一个空白的类.里面什么都没有.我们可以实例化它.然后定义一系列的变量,通过它来进行变量的传递.但是,由于实例化后不能添加方法.所以是不允许我们再添加任何方法的了.
<?
$obj = new stdClass;
$obj->a = 1;
$obj->b = 2;