第二节--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 相关文章推荐
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
基于python发送邮件的乱码问题的解决办法
Apr 25 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
May 10 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
PHP身份证校验码计算方法
Aug 10 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
Apr 23 PHP
laravel框架模型、视图与控制器简单操作示例
Oct 10 PHP
PHP如何解决微信文章图片防盗链
Dec 09 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 session机制
2011/07/17 PHP
php检测useragent版本示例
2014/03/24 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
豆瓣网的jquery代码实例
2008/06/15 Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
HTML中的setCapture和releaseCapture使用介绍
2012/03/21 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
python3.4用循环往mysql5.7中写数据并输出的实现方法
2017/06/20 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
Python 导入文件过程图解
2019/10/15 Python
tensorflow 实现数据类型转换
2020/02/17 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
JPA面试常见问题
2016/11/14 面试题
专业毕业生个性的自我评价
2013/10/03 职场文书
优秀学生事迹材料
2014/02/08 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
入党积极分子个人总结
2015/03/02 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android