PHP5.0对象模型探索之抽象方法和抽象类PHP学习网

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

  抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同

时间: 2024-09-11 05:45:12

PHP5.0对象模型探索之抽象方法和抽象类PHP学习网的相关文章

PHP5.0对象模型探索之抽象方法和抽象类_php基础

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

PHP5.0对象模型探索之Zend引擎的发展

在这个系列文章的最后一部分,作者讨论了Zend引擎带来的对象模型,特别提到它与PHP的前几个版本中的模型有什么不同. 当1997年夏天,发布的PHP3中没有计划要使PHP具备面向对象的能力. 当时没有任何与类和对象有关的想法. PHP3是一个纯粹面向过程的语言. 但是,在1997.8.27的晚上PHP3 alpha版中增加了对类的支持. 增加一个新特性给PHP,当时仅需要极少的讨论,因为当时探索PHP的人太少. 于是从1997年八月起, PHP迈出了走向面向对象编程语言的第一步. 确实,这只是第

PHP5.0对象模型探索之其它特性

类型指示 大家都知道,PHP是一种弱类型的语言.在使用变量前不需要定义,不需要声明变量的数据类型.这在编程中带来很多便利,但也带了一些隐患,特别当变量的类型变化时.在PHP5增加了类型指示,可以在执行过程中自动对类方法的参数类型进行判断.这类似于Java2中的RTTI,配合reflection可以让我们很好地控制对象. <?php interface Foo { function a(Foo $foo); } interface Bar { function b(Bar $bar); } cla

PHP5.0对象模型探索之重载

php5|对象 PHP4中已经有了重载的语法来建立对于外部对象模型的映射,就像Java和COM那样. PHP5带来了强大的面向对象重载,允许程序员建立自定义的行为来访问属性和调用方法.  重载可以通过__get, __set, and __call几个特殊方法来进行. 当Zend引擎试图访问一个成员并没有找到时,PHP将会调用这些方法.  在下面的例子中,__get和__set代替所有对属性变量数组的访问. 如果必要,你可以实现任何类型你想要的过滤. 例如,脚本可以禁止设置属性值, 在开始时用一

PHP5.0对象模型探索之对象串行化

php5|对象     串行化可以把变量包括对象,转化成连续bytes数据,你可以将串行化后的变量存在一个文件里或在网络上传输,然后再反串行化还原为原来的数据.你在反串行化类的对象之前定义的类,PHP可以成功地存储其对象的属性和方法. 有时你可能需要一个对象在反串行化后立即执行.为了这样的目的,PHP会自动寻找__sleep和__wakeup方法. 当一个对象被串行化,PHP会调用__sleep方法(如果存在的话). 在反串行化一个对象后,PHP 会调用__wakeup方法. 这两个方法都不接受

PHP5.0对象模型深度探索之起步

面向对象编程被设计来为大型软件项目提供解决方案,尤其是多人合作的项目. 当源代码增长到一万行甚至更多的时候,每一个更动都可能导致不希望的副作用. 这种情况发生于模块间结成秘密联盟的时候,就像第一次世界大战前的欧洲. //haohappy注:喻指模块间的关联度过高,相互依靠性太强.更动一个模块导致其它模块也必须跟着更动. 想像一下,假如有一个用来处理登录的模块答应一个信用卡处理模块来分享它的数据库连接. 当然出发点是好的,节省了进行另一个数据库连接的支出.然而有时,登录处理模块改变了其中一个变量的

PHP 5.0对象模型深度探索之起步

面向对象编程被设计来为大型软件项目提供解决方案,尤其是多人合作的项目. 当源代码增长到一万行甚至更多的时候,每一个更动都可能导致不希望的副作用. 这种情况发生于模块间结成秘密联盟的时候,就像第一次世界大战前的欧洲. //haohappy注:喻指模块间的关联度过高,相互依赖性太强.更动一个模块导致其它模块也必须跟着更动. 想像一下,如果有一个用来处理登录的模块允许一个信用卡处理模块来分享它的数据库连接. 当然出发点是好的,节省了进行另一个数据库连接的支出.然而有时,登录处理模块改变了其中一个变量的

第十节--抽象方法和抽象类 -- Classes and Objects in PHP5 [10]

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

Php5.0说明 ------为面向对象而生的php5

php5|对象 Php5.0说明 ------为面向对象而生的php5 为面向对象而生的PHP5--------------------------------------------- [摘要]目前开发中的PHP5,其面向对象的机能已经被大幅度的强化了.下一代的PHP将会是怎样的一种语言呢?下面我们来详细讲解一下目前发布的PHP5的beta release. (一) Zend 2.0的诞生现在的PHP4所使用的基本文法是被称之为Zend 引擎的脚本编译引擎.这个就是PHP4的优良机能的原因之一