第二节 对象模型 [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采集速度探究总结(原创)
Apr 18 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
php中执行系统命令的方法
Mar 21 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
PHP获取音频文件的相关信息
Jun 22 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
Zend Framework前端控制器用法示例
Dec 11 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
php设计模式之装饰模式应用案例详解
Jun 17 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 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
PHP生成便于打印的网页
2006/10/09 PHP
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
php 伪静态之IIS篇
2014/06/02 PHP
PHP获取数组长度或某个值出现次数的方法
2015/02/11 PHP
PHP+Ajax实时自动检测是否联网的方法
2015/07/01 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
PHP中__set()实例用法和基础讲解
2019/07/23 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
javascript 避免闭包引发的问题
2009/03/17 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
清除输入框内的空格
2016/12/21 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
解决vue v-for 遍历循环时key值报错的问题
2018/09/06 Javascript
js中null与空字符串""的区别讲解
2019/01/17 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
七年级数学教学反思
2014/01/22 职场文书
詹天佑教学反思
2014/04/30 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
幼儿教师个人总结
2015/02/05 职场文书
创业计划书之小型广告公司
2019/10/22 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python