第二节--PHP5 的对象模型

/*
+-------------------------------------------------------------------------------+
| = 本文为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清楚地知道什么时候没有对象的引用,把空出的内存分配到其它用途.

(0)

相关推荐

  • 第二节--PHP5 的对象模型

    /* +-------------------------------------------------------------------------------+ | = 本文为Haohappy读<<Core PHP Programming>>  | = 中Classes and Objects一章的笔记  | = 翻译为主+个人心得  | = 为避免可能发生的不必要的麻烦请勿转载,谢谢  | = 欢迎批评指正,希望和所有PHP爱好者共同进步!  | = PHP5研究中心: 

  • 第二节 对象模型 [2]

    PHP5有一个单重继承的,限制访问的,可以重载的对象模型. 本章稍后会详细讨论的"继承",包含类间的父-子关系. 另外,PHP支持对属性和方法的限制性访问. 你可以声明成员为private,不允许外部类访问. 最后,PHP允许一个子类从它的父类中重载成员. file://haohappy注:PHP4中没有private,只有public.private对于更好地实现封装很有好处. PHP5的对象模型把对象看成与任何其它数据类型不同,通过引用来传递. PHP不要求你通过引用(refere

  • PHP 第二节 数据类型之字符串类型

    PHP中一个字符串可以通过下面的4种方式来定义: 单引号 双引号 heredoc 语法结构 nowdoc 语法结构 (自PHP 5.3.0以后) 单引号 定义一个字符串 的最简单的方法是用单引号把它包围起来 (标点符号 '). 如果想要输出一个单引号,需在它的前面加个反斜线 (\).在单引号前或在字符串的结尾处 想要输出反斜线,输入两条 (\\).注意,如果在任何其它的字符前加了反斜线,反斜线将会被直接输出. Note: 不像双引号 和heredoc语法结构, 在单引号字符串中的变量 和特殊含义

  • PHP 第二节 数据类型之数组

    PHP 中的 数组 实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性.数组元素的值也可以是另一个数组.树形结构和多维数组也是允许的. 可以用 array() 语言结构来新建一个 array.它接受任意数量用逗号分隔的 键(key) => 值(value) 对. key 可以是 integer 或者 string.如果key是一个 inte

  • PHP 第二节 数据类型之转换

    在下列情况下一个变量被认为是 NULL: 被赋值为 NULL. 尚未被赋值. 被 unset(). NULL 类型只有一个值,就是大小写不敏感的关键字 NULL(你可以写成NULL,也可以写成null). 将一个变量转换为 null 类型将会删除该变量并且unset它的值. 类型转换 PHP 在变量定义中不需要(或不支持)明确的类型定义:变量类型是根据使用该变量的上下文所决定的.也就是说,如果把一个字符串值赋给变量 var,var 就成了一个字符串.如果又把一个整型值赋给 var,那它就成了一个

  • PHP 第二节 数据类型之数值型

    PHP 支持8种基本的数据类型. 四种标量类型: boolean (布尔型) integer (整型) float (浮点型, 也称作 double) string (字符串) 两种复合类型: array (数组) object (对象) 最后是两种特殊类型: resource (资源) NULL (NULL) boolean数据类型: 取值只能为True或者False,当其他类型转化为boolean类型时,以下值被认为是 FALSE: the 布尔值 FALSE 自身 the 整型值 0 (零

  • PHP5.0对象模型探索之抽象方法和抽象类

    面向对象程序通过类的分层结构构建起来,在单重继承语言如PHP中,类的继承是树状的. 一个根类有一个或更多的子类,再从每个子类继承出一个或更多下一级子类.当然,可能存在多个根类,用来实现不同的功能.在一个良好设计的体系中,每个根类都应该有一个有用的接口, 可以被应用代码所使用.如果我们的应用代码被设计成与根类一起工作,那么它也可以和任何一个从根类继承出来的子类合作. 抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同-没有任何代码.如果类中存在一个或更多抽象方法, 那么

  • PHP5 面向对象程序设计

    PHP5有一个单重继承的,限制访问的,可以重载的对象模型. 本章稍后会详细讨论的"继承",包含类间的父-子关系. 另外,PHP支持对属性和方法的限制性访问. 你可以声明成员为private,不允许外部类访问. 最后,PHP允许一个子类从它的父类中重载成员. PHP5的对象模型把对象看成与任何其它数据类型不同,通过引用来传递. PHP不要求你通过引用(reference)显性传递和返回对象. 在本章的最后将会详细阐述基于引用的对象模型. 它是PHP5中最重要的新特性. 有了更直接的对象模

  • 一步一步跟我学易语言之第二个易程序菜单设计

    下面用一个例程来详细说明,请新建一个程序,进行以下输入操作: 1.在_启动窗口中加入一个画板和一个按钮: 2.使用第二节中所介绍的方法加入四个空常量,将它们分别改为以下内容: 3.使用第三节中所介绍的方法加入一个空图片资源,将其名称改为"测试图片",然后单击"内容"栏或者在其上按下空格,随意导入一个图片文件后,单击"加入/修改到程序并关闭对话框"按钮返回,此时图片数据将被保存入 易程序文件中,图片文件不再被需要: 4.使用第三节中所介绍的方法加入

  • 深入理解Angular中的依赖注入

    一.什么是依赖注入 控制反转(IoC) 控制反转的概念最早在2004年由Martin Fowler提出,是针对面向对象设计不断复杂化而提出的一种设计原则,是利用面向对象编程法则来降低应用耦合的设计模式. IoC强调的是对代码引用的控制权由调用方转移到了外部容器,在运行是通过某种方式注入进来,实现了控制反转,这大大降低了程序之间的耦合度.依赖注入是最常用的一种实现IoC的方式,另一种是依赖查找. 依赖注入(Dependency Injection) 当然,按照惯例我们应该举个例子, 哦对,我们主要

随机推荐