第二节 对象模型 [2]


Posted in PHP onOctober 09, 2006

PHP5有一个单重继承的,限制访问的,可以重载的对象模型. 本章稍后会详细讨论的”继承”,包含类间的父-子关系. 另外,PHP支持对属性和方法的限制性访问. 你可以声明成员为private,不允许外部类访问. 最后,PHP允许一个子类从它的父类中重载成员.

file://haohappy注:PHP4中没有private,只有public.private对于更好地实现封装很有好处.

PHP5的对象模型把对象看成与任何其它数据类型不同,通过引用来传递. PHP不要求你通过引用(reference)显性传递和返回对象. 在本章的最后将会详细阐述基于句柄的对象模型. 它是PHP5中最重要的新特性.

有了更直接的对象模型,基于句柄的体系有附加的优势: 效率提高, 占用内存少,并且具有更大的灵活性.

在PHP的前几个版本中,脚本默认复制对象.现在PHP5只移动句柄,需要更少的时间. 脚本执行效率的提升是由于避免了不必要的复制. 在对象体系带来复杂性的同时,也带来了执行效率上的收益. 同时,减少复制意味着占用更少的内存,可以留出更多内存给其它操作,这也使效率提高.

file://haohappy注:基于句柄,就是说两个对象可以指向同一块内存,既减少了复制动作,又减少对内存的占用.

Zand引擎2具有更大的灵活性. 一个令人高兴的发展是允许析构--在对象销毁之前执行一个类方法. 这对于利用内存也很有好处,让PHP清楚地知道什么时候没有对象的引用,把空出的内存分配到其它用途。

PHP 相关文章推荐
生成静态页面的php函数,php爱好者站推荐
Mar 19 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
Feb 16 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
Yii框架获取当前controlle和action对应id的方法
Dec 03 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
Mar 05 PHP
php创建图像具体步骤
Mar 13 PHP
php数值转换时间及时间转换数值用法示例
May 18 PHP
PHP环形链表实现方法示例
Sep 15 PHP
PDO::beginTransaction讲解
Jan 27 PHP
PHP使用redis位图bitMap 实现签到功能
Oct 08 PHP
第三节 定义一个类 [3]
Oct 09 #PHP
Zend引擎的发展 [15]
Oct 09 #PHP
第五节 克隆 [5]
Oct 09 #PHP
第六节 访问属性和方法 [6]
Oct 09 #PHP
第八节 访问方式 [8]
Oct 09 #PHP
第九节 绑定 [9]
Oct 09 #PHP
第十节 抽象方法和抽象类 [10]
Oct 09 #PHP
You might like
ThinkPHP路由机制简介
2016/03/23 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
PHP+Ajax无刷新带进度条图片上传示例
2017/02/08 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
Javascript中的arguments与重载介绍
2015/03/15 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
浅谈jQuery为哪般去掉了浏览器检测
2016/08/29 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
[19:59]2014DOTA2国际邀请赛 IG战队纪录片
2014/08/07 DOTA
Python实现处理管道的方法
2015/06/04 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
python selenium 获取标签的属性值、内容、状态方法
2018/06/22 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
CSS3制作半透明边框(Facebox)类似渐变
2012/12/09 HTML / CSS
欧舒丹俄罗斯官方网站:L’OCCITANE俄罗斯
2019/11/22 全球购物
学习新党章思想汇报
2014/01/09 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
吧主申请感言怎么写
2015/08/03 职场文书