第二节--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 相关文章推荐
WordPress判断用户是否登录的代码
Mar 17 PHP
基于simple_html_dom的使用小结
Jul 01 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
PHP实现的连贯操作、链式操作实例
Jul 08 PHP
9条PHP编程小知识及易犯的小错误
Jan 22 PHP
PHP session会话操作技巧小结
Sep 27 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
Jul 03 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
Yii框架日志操作图文与实例详解
Sep 09 PHP
PHP使用phpunit进行单元测试示例
Sep 23 PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 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
smarty高级特性之对象的使用方法
2015/12/25 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
2014/04/10 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
[43:41]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
python控制台中实现进度条功能
2015/11/10 Python
python绘制热力图heatmap
2020/03/23 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
PyCharm设置每行最大长度限制的方法
2019/01/16 Python
Python字典的核心底层原理讲解
2019/01/24 Python
详解Python locals()的陷阱
2019/03/26 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
Java软件工程师综合面试题笔试题
2013/09/08 面试题
理工科学生的自我评价
2013/12/15 职场文书
卖房协议书
2014/04/11 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
档案接收函格式
2015/01/30 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL