*
+——+
| = 本文为Haohappy读<;<;Core
PHP Programming>>
| = 中Classes and Objects一章的
笔记 | = 翻译为主+个人心得
| = 为避免可能发生的不必要的麻烦请勿转载,谢谢
| = 欢迎批评指正,希望和所有
PHP爱好者共同进步!
+——+
*/
第二节——
PHP5 的
对象模型
PHP5有一个单重继承的,限制访问的,可以重载的
对象模型。 本章稍后会详细讨论的“继承”,包含类间的父-子关系。 另外,
PHP支持对属性和方法的限制性访问。 你可以声明成员为private,不允许外部类访问。 最后,
PHP允许一个子类从它的父类中重载成员。
//haohappy注:
PHP4中没有private,只有public.private对于更好地实现封装很有好处。
PHP5的
对象模型把
对象看成与任何其它数据类型不同,通过引用来传递。
PHP不要求你通过引用(reference)显性传递和返回
对象。 在本章的最后将会详细阐述基于句柄的
对象模型。 它是
PHP5中最重要的新特性。
有了更直接的
对象模型,基于句柄的体系有附加的优势: 效率提高, 占用内存少,并且具有更大的灵活性。
在
PHP的前几个版本中,脚本默认复制
对象。现在
PHP5只移动句柄,需要更少的时间。 脚本执行效率的提升是由于避免了不必要的复制。 在
对象体系带来复杂性的同时,也带来了执行效率上的收益。 同时,减少复制意味着占用更少的内存,可以留出更多内存给其它操作,这也使效率提高。
//haohappy注:基于句柄,就是说两个
对象可以指向同一块内存,既减少了复制动作,又减少对内存的占用。
Zand引擎2具有更大的灵活性。 一个令人高兴的发展是允许析构——在
对象销毁之前执行一个类方法。 这对于利用内存也很有好处,让
PHP清楚地知道什么时候没有
对象的引用,把空出的内存分配到其它用途。