第二节--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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
PHP HTML代码串截取代码
Dec 29 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
PHP中call_user_func_array()函数的用法演示
Feb 05 PHP
php读取excel文件的简单实例
Aug 26 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
php有效防止图片盗用、盗链的两种方法
Nov 01 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
PHP的PDO大对象(LOBs)
Jan 27 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 PHP
PHP策略模式写法
Apr 01 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
jquery常用操作小结
2014/07/21 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
15款最好的Bootstrap在线编辑器
2016/08/03 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
Python实现图片添加文字
2019/11/26 Python
python 读取数据库并绘图的实例
2019/12/03 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
一套软件测试笔试题
2014/07/25 面试题
造价工程师个人求职信
2013/09/21 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
行政介绍信范文
2015/05/04 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
一年级语文教学随笔
2015/08/14 职场文书
党校培训学习心得体会
2016/01/06 职场文书