PHP面向对象精要总结
《:PHP面向对象精要总结》要点: PHP实战本文实例汇总了PHP面向对象程序设计的精要.分享给大家供大家参考.具体分析如下: PHP实战1 使用extends实现继承以及重载、魔术办法的含义 PHP实战class B extends A PHP实战$b=new B(); PHP实战如果$a=new A(); PHP实战属性方法private不可以被继承 PHP实战3 php中双冒号::的应用 PHP实战php类代码中常看到"::"的操作符,这个是作用域限定操作符,是用一个双冒号"::"表示,它用来置顶类中不同作用域的级别.左边是作用域右边是拜访作用域的成员.
代码如下:
class MyClass {
??? const CONST_VALUE = 'A constant value'; } PHP实战echo MyClass::CONST_VALUE; PHP实战??? public static function doubleColon() { PHP实战OtherClass::doubleColon(); PHP实战class OtherClass extends MyClass PHP实战$class = new OtherClass(); PHP实战4 php中this和self以及parent的作用 PHP实战this:就是指向当前对象实例的指针,不指向任何其他对象或类.
代码如下:
private static $firstCount = 0;
private $lastCount; PHP实战//构造函数 parent:表示当前类父类的作用域,其余的跟self特性一样.parent是指向父类的指针,一般我们使用parent来调用父类的构造函数.
代码如下:
//继承类的构造函数
function __construct( $personSex,$personAge ) { ???????? parent::__construct( "test" ); //使用parent调用了父类的构造函数 ???????? $this->personSex = $personSex; ????????? $this->personAge = $personAge; } PHP实战5 构造函数与析构函数 PHP实战具有构造函数的类会在每次创建对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作. PHP实战PHP 5 新增了一个 final 关键字.如果父类中的办法被声明为final,则子类无法覆盖该办法; 如果一个类被声明为final,则不能被继承.
? 8 接口 PHP实战可以通过interface来定义一个接口,就像定义一个标准的类一样.
代码如下:
// 声明一个'iTemplate'接口
interface iTemplate { ??? public function setVariable($name,$var); ??? public function getHtml($template); } // 实现接口 // 下面的写法是正确的 class Template implements iTemplate { ??? private $vars = array(); ? ??? public function setVariable($name,$var) ??? { ??????? $this->vars[$name] = $var; ??? } ? ??? public function getHtml($template) ??? { ??????? foreach($this->vars as $name => $value) { ??????????? $template = str_replace('{' . $name . '}',$value,$template); ??????? } ? ??????? return $template; ??? } } PHP实战9 属性 PHP实战类的变量成员叫做“属性”,属性声明是由关键字public或者protected或者private开头,然后跟一个变量来组成. 属性中的变量可以初始化,但是初始化的值必须是常数,这里的常数是指php脚本在编译阶段时就为常数,而不是在编译阶段之后在运行阶段运算出的常数.
代码如下:
<?php??
class Person{?? //下面是人的成员属性??? private $name; //人的名字?? private $sex; //人的性别?? private $age; //人的年龄?? //__get()办法用来获取私有属性??? private function __get($property_name){?? if(isset($this->$property_name)){?? return($this->$property_name);}else {?? return(NULL);?? }?? }?? }?? //__set()办法用来设置私有属性??? private function __set($property_name,$value){?? $this->$property_name = $value;?? }?? //__isset()办法??? private function __isset($nm){?? echo "isset()函数测定私有成员时,自动调用<br>";?? return isset($this->$nm);?? }?? //__unset()办法??? private function __unset($nm){?? echo "当在类外部使用unset()函数来删除私有成员时自动调用的<br>";?? unset($this->$nm);?? }?? }?? $p1=new Person();?? $p1->name="this is a person name";?? //在使用isset()函数测定私有成员时,自动调用__isset()办法帮我们完成,返回结果为true?? echo var_dump(isset($p1->name))."<br>";?? echo $p1->name."<br>";?? //在使用unset()函数删除私有成员时,自动调用__unset()办法帮我们完成,删除name私有属性?? unset($p1->name);?? //已经被删除了,所这行不会有输出??? echo $p1->name;?? ?>
代码如下:
<?php
class Person{ //下面是人的成员属性 private $name; //人的名字 private $sex; //人的性别 private $age; //人的年龄 //__get()办法用来获取私有属性 private function __get($property_name){ if(isset($this->$property_name)){ return($this->$property_name); }else{ return(NULL); } } } //__set()办法用来设置私有属性 private function __set($property_name,$value){ $this->$property_name = $value; } //__isset()办法 private function __isset($nm){ echo "isset()函数测定私有成员时,自动调用<br>"; return isset($this->$nm); } //__unset()办法 private function __unset($nm){ echo "当在类外部使用unset()函数来删除私有成员时自动调用的<br>"; unset($this->$nm); } } $p1=new Person(); $p1->name="this is a person name"; //在使用isset()函数测定私有成员时,返回结果为true echo var_dump(isset($p1->name))."<br>"; echo $p1->name."<br>"; //在使用unset()函数删除私有成员时,删除name私有属性 unset($p1->name); //已经被删除了,所这行不会有输出 echo $p1->name; ?> PHP实战10 克隆 PHP实战对象复制可以通过clone关键字来完成(如果对象中存在__clone()办法,会先被调用).对象中的 __clone()办法不能直接调用. PHP实战希望本文所述对大家的php面向对象程序设计有所赞助. 《:PHP面向对象精要总结》是否对您有启发,欢迎查看更多与《:PHP面向对象精要总结》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |