电脑安全

您当前的位置:主页 > 电脑安全 >

PHP的面向对象编程-网络编程

来源:[db:来源]标题:   方法    编辑:电脑技术全能网 时间:2019-09-18 18:00

原标题:PHP的面向对象编程-网络编程
   面向工具编程的观点: 差别的作者之间说法能够纷歧样,然而一个OOP言语必需有以下几方面: 形象数据范例和信息封装 继续 多态 在PHP中是经过类来实现封装的: <?php classSomething{ //在OOP类中,平日第一个字符为小写 var$x; functionsetX($v){ //方式开端为小写单词,而后应用小写字母来分开单词,比方getValueOfArea() $this->x=$v; } functiongetX(){ return$this->x; } } 固然你能够按自已的爱好停止界说,但最好坚持一种尺度,如许会更无效。数据成员在类中应用"var"申明来界说,在给数据成员赋值之前,它们是没有范例的。一个数据成员能够是一个整数,一个数组,一个相干数组(associativearray)或许是一个工具。方式在类中被界说成函数情势,在方式中拜访类成员变量时,你应当应用$this->name,不然对一个方式来讲,它只能是部分变量。 应用new操纵符来创立一个工具: $obj=newSomething; 而后你能够应用成员函数经过: $obj->setX(5); $see=$obj->getX(); 在这个例子中,setX成员函数将5赋值给工具的成员变量x(不是类的),而后getX前往它的值5。能够象:$obj->x=6那样经过类援用方法来存取数据成员,这不是一个很好的OOP习气。我激烈倡议经过方式来存取成员变量。假如你把成员变量当作是弗成处置的,而且只经过工具句柄来应用方式,你将是一个好的OOP顺序员。可怜的是,PHP不支撑申明公有成员变量,以是不良代码在PHP中也是同意的。继续在PHP中很轻易完成,只有应用extend要害字。 <?php classAnotherextendsSomething{ var$y; functionsetY($v){ $this->y=$v; } functiongetY(){ return$this->y; } } "Another"类的工具当初领有了父类(Something)的全体的数据成员及方式,并且还加上了自已的数据成员和方式。 你能够应用 $obj2=newSomething; $obj2->setX(6); $obj2->setY(7); PHP当初还不支撑多重继续,以是你不能从两个或两个以上类派生出新的类来。你能够在派生类中重界说一个方式,假如咱们在"Another"类中重界说了getX方式,咱们就不能使用"Something"中的getX方式了。假如你在派生类中申明了一个与基派同名的数据成员,那末当你处置它时,它将“暗藏”基类的数据成员。 你能够在你的类中界说结构函数。结构函数是一个与类名同名的方式,当你创立一个类的工具时会被挪用,比方: <?php classSomething{ var$x; functionSomething($y){ $this->x=$y; } functionsetX($v){ $this->x=$v; } functiongetX(){ return$this->x; } } 以是你能够创立一个工具,经过: $obj=newSomething(6); 结构函数会主动地把6赋值给数据变量x。结构函数和方式都是一般的PHP函数,以是你能够应用缺省参数。 functionSomething($x="3",$y="5") 接着: $obj=newSomething();//x=3andy=5 $obj=newSomething(8);//x=8andy=5 $obj=newSomething(8,9);//x=8andy=9 缺省参数应用C++的方法,以是你不能疏忽Y的值,而给X一个缺省参数,参数是从左到右赋值的,假如传入的参数少于请求的参数时,其作的将应用缺省参数。 当一个派生类的工具被创立时,只要它的结构函数被挪用,父类的结构函数没被挪用,假如你想挪用基类的结构函数,你必需要在派生类的结构函数中表现挪用。能够如许做是由于在派生类中全部父类的方式都是可用的。 <?php functionAnother(){ $this->y=5; $this->Something(); //表现挪用基类结构函数 } OOP的一个很好的机制是应用形象类。形象类是不能实例化,只能供给给派生类一个接口。计划者平日应用形象类来逼迫顺序员从基类派生,如许能够确保新的类包括一些等待的功效。在PHP中没有尺度的方式,然而:假如你须要这个特征,能够经过界说基类,并在它的结构函数后加上"die"的挪用,如许便可以保障基类是弗成实例化的,当初在每一个方式(接口)前面加上"die"语句,以是,假如一个顺序员在派生类中没有笼罩方式,将激发一个过错。并且由于PHP是无范例的,你能够须要确认一个工具是来自于你的基类的派生类,那末在基类中增添一个方式来实义类的身份(前往某种标识id),而且在你接受到一个工具参数时校验这个值。固然,假如一个罪恶欠好的顺序员在派生类中笼罩了这个方式,这类方式就不起感化了,不外个别成绩多发觉在怠惰的顺序员身上,而不是罪恶的顺序员。 固然,可能让基类对顺序员无奈看到是很好的,只有将接口打印进去做他们的任务便可以了。在PHP中没有析构函数。 重载(与笼罩差别)在PHP中不支撑。在OOP中,你能够重载一个方式来完成两个或重多的方式存在雷同的名字,然而有差别数目或范例的参数(这要看言语)。PHP是一种疏松范例的言语,以是经过范例重载不起感化,但是经过参数的个数差别来重载也不起感化。 偶然在OOP中重载结构函数十分好,如许你能够经过差别的方式创立工具(通报差别数目的参数)。在PHP中完成它的技能是: <?php classMyclass{ functionMyclass(){ $name="Myclass".func_num_args(); $this->$name(); //留神$this->name()个别是过错的,然而在这里$name是一个将被挪用方式的名字 } functionMyclass1($x){ code; } functionMyclass2($x,$y){ code; } } 经过在类中的额定的处置,应用这个类对用户是通明的: $obj1=newMyclass('1');//将挪用Myclass1 $obj2=newMyclass('1','2');//将挪用Myclass2 偶然这个十分好用。 多态 多态是工具的一种才能,它能够在运转时辰依据通报的工具参数,决议挪用哪一个工具的方式。比方,假如你有一个figure的类,它界说了一个draw的方式。而且派生了circle和rectangle类,在派生类中你笼罩了draw方式,你能够另有一个函数,它盼望应用一个参数x,而且能够挪用$x->draw()。假如你有多态性,挪用哪个draw方式就依靠于你通报给这个函数的工具范例。

上一篇:PHP再线投票connect.php-网络编程

下一篇:没有了