第二节--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 相关文章推荐
php 定界符格式引起的错误
May 24 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
zend optimizer在wamp的基础上安装图文教程
Oct 26 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
ThinkPHP验证码和分页实例教程
Aug 22 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
php析构函数的简单使用说明
Aug 24 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
php实现图片上传并利用ImageMagick生成缩略图
Mar 14 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 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
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
JavaScript 字符编码规则
2009/05/04 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
浅谈python正则的常用方法 覆盖范围70%以上
2018/03/14 Python
关于python写入文件自动换行的问题
2018/06/23 Python
Python使用pymysql从MySQL数据库中读出数据的方法
2018/07/25 Python
Python爬虫框架Scrapy常用命令总结
2018/07/26 Python
Python实现网站表单提交和模板
2019/01/15 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
Python 打印自己设计的字体的实例讲解
2021/01/04 Python
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
毕业生实习鉴定
2013/12/11 职场文书
文明礼仪事迹材料
2014/01/09 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL