第二节--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 相关文章推荐
BBS(php &amp; mysql)完整版(五)
Oct 09 PHP
建立文件交换功能的脚本(一)
Oct 09 PHP
用PHP实现Ftp用户的在线管理
Feb 16 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
Jul 05 PHP
php中error与exception的区别及应用
Jul 28 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
Nov 30 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
php 查找数组元素提高效率的方法详解
May 05 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
Oct 30 PHP
PHP实现创建一个RPC服务操作示例
Feb 23 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
Zerg兵种介绍
2020/03/14 星际争霸
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
JavaScript 字符串连接性能优化
2008/12/20 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
python实现学生信息管理系统
2020/04/05 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
2018/11/06 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
法律专业个人实习自我鉴定
2013/09/23 职场文书
毕业生自荐信格式
2014/03/07 职场文书
模具设计与制造专业求职信
2014/07/19 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
债务纠纷代理词
2015/05/25 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
mysql脏页是什么
2021/07/26 MySQL
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript