stdClass是PHP的一个基类
2016-03-21 10:42
573 查看
建空数组只要$andy = array();
新建空对像却要$andy = new Andy; 而且还得先有个class Andy{}
或者得2行
$andy = array();
$andy = (object)$andy;
$user = new stdClass();
$user->name = 'gouki';我们可以这么理解: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;
新建空对像却要$andy = new Andy; 而且还得先有个class Andy{}
或者得2行
$andy = array();
$andy = (object)$andy;
$user = new stdClass();
$user->name = 'gouki';我们可以这么理解: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正则表达式 /i, /is, /s, /isU等
- 关于PHP5 Session生命周期介绍
- php curl_init函数用法
- PHP文件上传至另一台服务器
- php的header来定义一个php页面为utf编码或GBK编码
- php 自动全局变量 $_SERVER,$_ENV,$_COOKIE,$_GET,$_POST,$_FILES,$_SESSION
- PHP 数组排序(sort)
- php 阿拉伯数字转中文大写金额
- [求助]php变量需要释放吗
- Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
- php利用pdo进行mysql的事务处理机制
- Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
- php进阶:查找所有匹配的结果
- zend 代码提示时间修改
- Zend Framework教程之Zend_Db_Table_Row用法实例分析
- zend php 修改模板
- php进阶:使用正则表达式进行匹配
- PHP汉字转拼音函数
- Zend Framework教程之Zend_Db_Table用法详解
- webstorm ftp发布问题