相信大家跟我一样,会经常看到和下面很类似的PHP代码:
复制代码 代码如下:
$user = new stdClass();
$user->name = 'gouki';
这样的代码,这是干嘛用的呢?
翻开手册,搜索stdClass,你会发现,手册上几乎没有介绍,如果你再次搜索google,看到的也几乎全是英文解释。
其实,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后,还是占用了内存(这个是听人说来的,我没有测试……也不知道怎么测试,如果有人知道,请告诉我,谢谢 )
不过SPL的标准类库里,还有一个函数arrayobject,可以直接将数组转化为对象这也是一个好办法哦。
相关推荐:
表格 隔行换色升级版
Oracle 多行记录合并/连接/聚合字符串的几种方法
jQuery 标题的自动翻转实现代码
JavaScript的eval JSON object问题
Jquery 学习笔记(二)
jquery pagination插件实现无刷新分页代码
flex 简单例子(含实例效果图 源码)
从Web查询数据库之PHP与MySQL篇
Oracle字符集修改查看方法
Flex Data Binding详解
java对XML文件的解析、节点的增加、删除操作总结
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
清除cookies的批处理(bat)
ie与firefox下的event使用说明与详细区别
签名框(Textarea)限制文字数量并适时提示
Apache下禁止特定目录执行PHP 提高服务器安全性
JavaScript的变量作用域深入理解
CSS 布局一个漂亮的滑块
伪静态技术介绍与优缺点分析(较完整篇)
Javascript 刷新全集常用代码
aspnet_isapi.dll设置图文方法.net程序实现伪静态
判断一个表的数据不在另一个表中最优秀方法
Js 实现文字爬楼滚动效果 结合文本框
MSSQL 生成日期列表代码
图片与JavaScript配合做出个性滚动条
图片友情链接滚动 横向,带控制按钮
jquery checkbox全选反选效果代码
比较全面的event对像在IE与FF中的区别 推荐
extjs 学习笔记 四 带分页的grid
SQL 多表连接查询实现语句
Win2008远程控制确保安全的设置技巧
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别
巧用DOS 伪装保护文件完整版
sql中all,any,some用法
php面向对象全攻略 (九)访问类型
CSS 渐变背景的6个演示代码
Python 第一步 hello world
ASP 常见的连接字符串写法(access2007)
点击下载链接 弹出页面实现代码
ASP 三层架构 Error处理类
jquery 框架使用教程 AJAX篇
Oracle 子程序参数模式,IN,OUT,NOCOPY
php 向访客和爬虫显示不同的内容
sqlserver 日志恢复方法(搞定drop和truncate)
Flex3 界面布局教程 第二篇
通过隐藏option实现select的联动效果
Javascript isArray 数组类型检测函数
mysql sql语句总结
vbs 搜索代理地址实现代码[小偷程序]