第二节--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 相关文章推荐
dedecms采集中可以过滤多行代码的正则表达式
Mar 17 PHP
php flush类输出缓冲剖析
Oct 19 PHP
深入php list()函数的详解
Jun 05 PHP
php字符编码转换之gb2312转为utf8
Oct 28 PHP
PHP mail()函数使用及配置方法
Jan 14 PHP
php生成静态页面的简单示例
Apr 17 PHP
php实现cookie加密的方法
Mar 10 PHP
PHP内核探索之变量
Dec 22 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
基于PHPexecl类生成复杂的报表表头示例
Oct 14 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 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分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
ThinkPHP分页类使用详解
2014/03/05 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
JavaScript高级程序设计
2006/12/29 Javascript
测试你的JS的掌握程度的代码
2009/12/09 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
详解Python里使用正则表达式的ASCII模式
2017/11/02 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
WxPython实现无边框界面
2019/11/18 Python
python实现画图工具
2020/08/27 Python
python实现网页录音效果
2020/10/26 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
四风问题自查报告剖析材料
2014/02/08 职场文书
企业消防安全责任书
2014/07/23 职场文书
杭白菊导游词
2015/02/10 职场文书
消防隐患整改通知书
2015/04/22 职场文书
长江七号观后感
2015/06/11 职场文书
2016十一国庆节感言
2015/12/09 职场文书
四年级作文之说明文作文
2019/10/14 职场文书
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA