关于stdClass
2015-06-02 16:11
555 查看
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;
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- 一个简单的asp数据库操作类
- C#实现用于操作wav声音文件的类实例
- 在线管理数据库 类
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- Lua面向对象之类和继承浅析
- Lua中类的实现原理探讨(Lua中实现类的方法)
- Lua中的类编程代码实例