当前位置:Gxlcms > PHP教程 > PHPstdClass类使用详解

PHPstdClass类使用详解

时间:2021-07-01 10:21:17 帮助过:25人阅读

PHP stdClass类使用详解

对于一维数组,通过PHP的stdClass类我们可以把他写成对象的形式

$tmp = array();

$tmp['a'] = 1;
$tmp['b'] = 2;

$tmp['c'] = 3;

通过PHP的stdClass类写法:


$tmp = new stdClass();
$tmp->a = 1;
$tmp->b = 2;

$tmp->c = 3;

新建空数组只要$tmp = array();

新建空对象只要$tmp = new stdClass();

其实,stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类。

stdClass是PHP的一个基类,所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时,这个基类又有一个特殊的地方,就是没有方法。

凡时用new stdClass()的变量,都不可能会出现$a->test()这种方式的使用。或者,我们可以又这么理解一下,正因为PHP5的对象的独特性,对象在任何地方被调用,都是引用地址型的,所以相对消耗的资源会少一点。在其它页面为它赋值时是直接修改,而不是引用一个拷贝。例如:$user = new stdClass();
$user->name = 'gouki';
$myUser = $user;

$myUser->name = 'flypig';

如果在PHP4时代,这样的代码就是在消耗系统资源。因为:

$myUser = $user;
这是创建了一个拷贝。所以,在PHP4的时候,都是这样使用:

$myUser = & $user;

有人说,为什么不用数组呢?数组不是更方便吗?而且对于PHP这样的弱类型程序来说,用数组应该是最方便的。

确实。数组在程序的使用中应该是最方便的,然而数组的每次被引用($a = $b),其实都是创建了一个副本,而且,数组被unset后,还是占用了内存。

人气教程排行