基础知识:php4和php5区别

基础知识:php4和php5区别

ID:8832333

大小:20.32 KB

页数:3页

时间:2018-04-09

基础知识:php4和php5区别_第1页
基础知识:php4和php5区别_第2页
基础知识:php4和php5区别_第3页
资源描述:

《基础知识:php4和php5区别》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基础知识:php4和php5区别  PHP5中的对象已经进行了较系统、较全面的调整,现在的样子可能看起来会有些类似于Java。本小节着重讲述PHP5中新的对象模式,并举了一些较简易的例子来说明。就让本节成为你的PHP5之旅的一个新起点吧。:)  *构造函数和析构函数*对象的引用*对象的克隆*对象中的私有、公共及受保护模式*接口(Interfaces)*抽象类*__call*__set和__get*静态成员  构造函数和析构函数  在PHP4中,当函数与对象同名时,这个函数将成为该对象的构造函数,并且在PHP4中没有析构函数的概念。在PHP5

2、中,构造函数被统一命名为__construct,并且引入了析构函数的概念,被统一命名为__destruct。  例一:构造函数和析构函数  classfoo{var$x;function__construct($x){$this->x=$x;}functiondisplay(){print($this->x);}function__destruct(){print("byebye");}}$o1=newfoo(4);$o1->display();?>在上面的例子中,当你终止调用foo类的时候,其析构函数将会被调用,上例中会输出“byebye

3、”。  对象的引用  众所周知,在PHP4中,传递变量给一个函数或方法,实际是把这个变量做了一次复制,也就意味着你传给函数或方法的是这个变量的一个副本,除非你使用了引用符号“&”来声明是要做一个引用,而不是一个Copy。在PHP5中,对象总是以引用的形式存在的,对象中的赋值操作同样也都是一个引用操作。  例二:对象的引用  classfoo{var$x;functionsetX($x){$this->x=$x;}functiongetX(){return$this->x;}}$o1=newfoo;$o1->setX(4);$o2=$

4、o1;$o1->setX(5);if($o1->getX()==$o2->getX())print("Ohmygod!");?>  对象的克隆  如上所述,当一个对象始终以引用的形式来被调用时,如果我想得到该对象的一个副本,该怎么办呢?PHP5提供了一个新的功能,就是对象的克隆,语法为__clone。  例三:对象的克隆classfoo{var$x;functionsetX($x){$this->x=$x;}functiongetX(){return$this->x;}}$o1=newfoo;$o1->setX(4);$o2=$o1->__

5、clone();$o1->setX(5);if($o1->getX()!=$o2->getX())print("Copiesareindependant");?>对象克隆的方法在其它很多应用程序语言中都是存在的,所以你不必担心它的稳定性。:)  对象中的私有、公共及保护模式  PHP4中,一个对象的所有方法和变量都是公共的,这意味着你可以在一个对象的外部操作其中的任意一个变量和方法。PHP5引入了三种新的用来控制这种存取权限的模式,它们是:公共的(Public)、博彩评级官网008km.org受保护的(Protected)及私有的(Priv

6、ate)。  公共模式(Public):允许在对象外部进行操作控制。私有模式(Private):只允许本对象内的方法对其进行操作控制。受保护模式(Protected):允许本对象及其父对象对其进行操作控制。  例四:对象中的私有、公共及受保护模式  classfoo{private$x;publicfunctionpublic_foo(){print("I'mpublic");}protectedfunctionprotected_foo(){$this->private_foo();//Okbecauseweareinthesamecla

7、sswecancallprivatemethodsprint("I'mprotected");}privatefunctionprivate_foo(){$this->x=3;print("I'mprivate");}}classfoo2extendsfoo{publicfunctiondisplay(){$this->protected_foo();$this->public_foo();//$this->private_foo();//Invalid!thefunctionisprivateinthebaseclass}}$x=newf

8、oo();$x->public_foo();//$x->protected_foo();//Invalidcannotcallprotectedmethodsoutsidethe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。