第二节--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随机数生成代码与使用实例分析
Apr 08 PHP
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
php读取目录所有文件信息dir示例
Mar 18 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
PHP实现WebService的简单示例和实现步骤
Mar 27 PHP
PHP简单实现DES加密解密的方法
Jul 12 PHP
一个简单的php MVC留言本实例代码(必看篇)
Sep 22 PHP
详细解读php的命名空间(一)
Feb 21 PHP
php精度计算的问题解析
Jun 21 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 flv视频时间获取函数
2010/06/29 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
vue-resource 拦截器(interceptor)的使用详解
2017/07/04 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
Python 字符串中的字符倒转
2008/09/06 Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
python通过smpt发送邮件的方法
2015/04/30 Python
Python 3中的yield from语法详解
2017/01/18 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
2019/12/09 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
进口业务员岗位职责
2014/04/06 职场文书
操行评语大全
2014/04/30 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
中学生社区服务活动报告
2015/02/05 职场文书
小学教师节活动总结
2015/03/20 职场文书
联村联户简报
2015/07/21 职场文书
标准演讲稿格式结尾应该怎么书写?
2019/07/17 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
用CSS3画一个爱心
2021/04/27 HTML / CSS
pycharm代码删除恢复的方法
2021/06/26 Python