第二节--PHP5 的对象模型


Posted in PHP onNovember 16, 2006

/*
+-------------------------------------------------------------------------------+
| = 本文为Haohappy读<<Core PHP Programming>> 
| = 中Classes and Objects一章的笔记 
| = 翻译为主+个人心得 
| = 为避免可能发生的不必要的麻烦请勿转载,谢谢 
| = 欢迎批评指正,希望和所有PHP爱好者共同进步! 
| = PHP5研究中心: http://blog.csdn.net/haohappy2004
+-------------------------------------------------------------------------------+
*/

第二节--PHP5 的对象模型

PHP5有一个单重继承的,限制访问的,可以重载的对象模型. 本章稍后会详细讨论的”继承”,包含类间的父-子关系. 另外,PHP支持对属性和方法的限制性访问. 你可以声明成员为private,不允许外部类访问. 最后,PHP允许一个子类从它的父类中重载成员.

//haohappy注:PHP4中没有private,只有public.private对于更好地实现封装很有好处.

PHP5的对象模型把对象看成与任何其它数据类型不同,通过引用来传递. PHP不要求你通过引用(reference)显性传递和返回对象. 在本章的最后将会详细阐述基于句柄的对象模型. 它是PHP5中最重要的新特性.

有了更直接的对象模型,基于句柄的体系有附加的优势: 效率提高, 占用内存少,并且具有更大的灵活性.

在PHP的前几个版本中,脚本默认复制对象.现在PHP5只移动句柄,需要更少的时间. 脚本执行效率的提升是由于避免了不必要的复制. 在对象体系带来复杂性的同时,也带来了执行效率上的收益. 同时,减少复制意味着占用更少的内存,可以留出更多内存给其它操作,这也使效率提高.

//haohappy注:基于句柄,就是说两个对象可以指向同一块内存,既减少了复制动作,又减少对内存的占用.

Zand引擎2具有更大的灵活性. 一个令人高兴的发展是允许析构--在对象销毁之前执行一个类方法. 这对于利用内存也很有好处,让PHP清楚地知道什么时候没有对象的引用,把空出的内存分配到其它用途. 

PHP 相关文章推荐
10条PHP编程习惯助你找工作
Sep 29 PHP
php Xdebug 调试扩展的安装与使用.
Mar 13 PHP
php添加文章时生成静态HTML文章的实现代码
Feb 17 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
Jul 01 PHP
PHP curl 抓取AJAX异步内容示例
Sep 09 PHP
php跨服务器访问方法小结
May 12 PHP
从刷票了解获得客户端IP的方法
Sep 21 PHP
PHP使用fopen与file_get_contents读取文件实例分享
Mar 04 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
Apr 05 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
php连接MSsql server的五种方法总结
Mar 04 PHP
PHP数字金额转换成中文大写显示
Jan 05 PHP
第一节--面向对象编程
Nov 16 #PHP
MYSQL数据库初学者使用指南
Nov 16 #PHP
php.ini 中文版
Oct 28 #PHP
一个可以找出源代码中所有中文的工具
Oct 25 #PHP
《APMServ 5.1.2》使用图解
Oct 23 #PHP
APMServ使用说明
Oct 23 #PHP
别人整理的服务器变量:$_SERVER
Oct 20 #PHP
You might like
php 上传功能实例代码
2010/04/13 PHP
PHP 图像尺寸调整代码
2010/05/26 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
python处理cookie详解
2014/02/07 Python
python中的列表推导浅析
2014/04/26 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
flask中的wtforms使用方法
2018/07/21 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
python自动生成model文件过程详解
2019/11/02 Python
关于numpy数组轴的使用详解
2019/12/05 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
英国排名第一的停车场运营商:NCP
2019/08/26 全球购物
工商管理系学生的自我评价分享
2013/11/29 职场文书
公司承诺书格式
2014/05/21 职场文书
建筑结构施工求职信
2014/07/11 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书