'.Smanager-> purview (:调用$ anager对象的 purview方法Smanager->popedom:调用$ manage对象的ppem方法运行结果如图148所示。289PHP从入门到精通(第2版文件销看的收羸工具⑦”翻员用有的权限首理员有会的全部视限,管理员还育会员没有的限省溶平可信点图148应用接口通过上面的实例可以发现,抽象类和接口实现的功能十分相似。抽象类的优点是可以在抽象类中实现公共的方法,而接口则可以实现多继承。至于何时使用抽象类和接口就要看具体实现了。1434克隆对象1.克隆对象在PHP4中,对象被当作普通的数据类型来使用。如果想引用对象,需要使用“&”来声明,否则会按照PHP4的默认方式来按值传递对象。下面结合实例说明。【例1415】本例首先实例化一个 Sportobject类的对象sbok,$book1的默认值为book,然后将对象$book使用普通数据类型的赋值方式给对象$book2赋值。改变$bk2的值为 computer,再输出对象$book1的值。实例代码如下:(实倒位置:光盘ⅥTM1415)≤?phpclass Sportobjectt类 Sportobjectprivate Object type= 'book:∥声明私有变量$ object type,并赋初值为bokpublic function setType(StypeX∥声明成员方法 setType,为变量 Object_type赋值sthis ->object type Stype,public function getTypeo∥声明成员方法 get Type,返回亚量 Object type的值return $this->object type:sbook1 new Sportobject(∥实例化对象$book1Sbook2 Sbook1∥用普通数据类型的方法给对象$book2赋值book2-> setType(computer);改变对象$book2的值ech时对象$book1的值为: sbook1 getType〔川输出对象$book1的值上面的实例在PHP5中的返回值为“对象$ book1的值为; computer",因为$bok2只是 Shook的一个引用;而在PHP4中的返回值是“对象$book1的值为:bok”,因为对象$bo2是$bok1的一个备份。在PP5中如果需要将对象复制,也就是克隆一个对象。需要使用关键字con来实现。克隆对象的格式为:Sobject1 E new ClassName0Sobject2 clone Objecti第14幸面向对象将例1415中的$book2-$ bookl修改为$book2= clone$ book1,其他不变,即可返回PHP4中的结果。2._cone(方法有时除了单纯地克隆对象外,还需要克隆出来的对象可以拥有自己的属性和行为。这时就可以使用 cloned方法来实现。 clonee方法的作用是:在克隆对象的过程中,调用_ cloned方法,可以使克隆出来的对象保持自已的一些行为及属性。【例1416】本实例将例1415的代码做一些修改。在对象$ book1中创建 clone(方法,该方法实现的功能是将变量$ bject type的默认值从book修改为 computer使用对象$book1克隆出对象bok2,输出$book1和Sbok2的 Object type值,査看最终的结果。实例代码如下:(实例位:光盘ⅥTMs1416)class sportobjectt类 Sportobjectprivate Object_type =book月声明私有变量$ object type,并赋初值为bkpublic function setType(StypeM∥声明成员方法 setType,为变量$ object_ type赋值sthis -> object type= Stypepublic function getT ype(声明成员方法 getType,返回变量 Object_ type的值return $this -> object type:publlc functlon clone(C∥声明cane()方法hlsˉ object_type= computH将变量 Object type的值修改为 computersboak1 new SportobjectoH实例化对象$book1Sbook2=clone book∥使用普通数据类型的方法给对象$book2赋值echo对象$book的变量值为:∵ Sbook1→> getType(;f输出对象$book1的值echo
$name=0;∥如果未被声明,则对变量初始化293PHP从入门到精通(第2版)private function_set(Sname, $)∥声明魔术方法setif(isset(Sthis-> Sname)判断变量是否定义sthis→$name=$ value;echo变量!$name值为::$ value
ese〔Sthis->Sname=Svalue∥如果未定义,继续对变量进行赋值echo变量$name被初始化为:",$vaue"
type:∥调用变量sype$ MyComputer→>name;∥调用变量$name运行结果如图14.10所示。生htp//na1hst回划文件2)朝q意哥①收腐Q工具①哪”:>搜囊收意夹撤岱变量ty赋为:叮Y受量为:m1义,初始化为日帖化为:0卷亮毕幕地Ete图140s0和ge0方法2._cal()方法caO方法的作用是:当程序试图调用不存在或不可见的成员方法时,PHP会先调用_《aO方法来存储方法名及其参数。ca0方法包含两个参数,即方法名和方法参数。其中,方法参数是以数组形式存在的。【例1420】本例声明一个类 Sportobject,类中包含两个方法,即 my Dream0和cal(O实例化对象$ MyLife需调用两个方法,一个是类中存在的 my Dreamo方法,一个是不存在的 dReamy方法。实例代码如下:(实倒位:光鑫MN140)类 Sportobjectclass Sportobjecttpublic function my(X∥方法 my Dream)echo调用的方法存在,直接执行此方法。p>';public function call(Method, Sparameter)i∥ca(方法echo如果方法不存在,则执行ca0方法。
php 从入门到精通 第4部分
php从入门到精通,潘凯华编著。本次上传是第四部分内容。第14章面向对象class subclass implements Interface Name1, Interface[function interface Name1X∥功能实现function interface Name2(X能实现例1414】本例首先声明了两个接口 POpedom和 PUrview,接着声明了两个类 Membe和 Manager,其中 Member类继承了 POpedom接口; Manager继承了 POpedom和 MPurview接口。分别实现各自的成员方法后,实例化两个对象$ member和 Manager。最后调用实现后的方法。实例代码如下;(实例位道:光盘IMsN414php广声朝接口 POpedominterface MPopedomfunction popedom声明口 PUrviewnterface mPurview【unction purview);芦创建子类 Membe,实现一个技口 PUrviewclass Member implements MPurviewfunction purviewecho会员拥有的权限。刨魂子类 Manager,实现多个整口 PUrvEy和 MPopedonclass Manager implements MPurview, MPopedomfunction purview(echo管理员拥有会员的全部权限。;function popedom(Mecho理员还有会员没有的权限Smember new member o:∥类 Member实例化manager new Manager(类 Manager实例化Smember→ purview()∥调用$ member对象的 purview方法echo
暂无评论