一、PHP面向對象編程基礎實踐
<?php/** 通過對象的編程方式,可將實現生活中的一切事物以對象的形式表現出來。便于理解、維護、擴展等;* 本示例:定義一個“人”類* $name : 對象中的成員屬性,在此類中表示人的姓名* say() : 對象中的成員方法,在此類中表示人說話的方法* $this : PHP中的偽變量,表示自身的類* __construct() : php中的魔術方法,構造函數,在實例化類時自動執行* __destruct() : php中的魔術方法,析構函數,當類調用完成后自動執行*/class Human{ public $name; public $sex; public $age; public function __construct($name,$sex,$age) { $this->name = $name; $this->sex = $sex; $this->age = $age; } public function say() { echo '大家好,我的名字叫'.$this->name.',今年'.$this->age.'歲,我的性別是'.$this->sex; } public function __destruct() { $this->name = null; $this->sex = null; $this->age = null; }}//實例化“人”類$male = new Human("張三","男","20");//調用“人”類說話的方法$male->say();//輸出結果:大家好,我的名字叫張三,今年20歲,我的性別是男?>
二、PHP面向對象高級編程實踐
知識點:類的繼承、方法重寫、訪問控制、static關鍵字、final關鍵字、數據訪問、接口、多態、抽象類
2.1、類的繼承:extends 關鍵字
例如:一員運行員、一位主持人,他們有人類共同的行為方法,但他們都有自己不同的特長專業。因此在編程時需要給他們創建一個父類并繼承;
<?php/** 創建一個“人”類做為父類,繼承的子類都擁有其父類的成員屬性、方法*/class Human{ public $name; public function say() { echo "父類說話的方法,姓名:".$this->name."/n"; } public function eat() { echo "父類吃飯的方法/n"; }}/** 創建一個“運動員”類,繼承“人”類* extends : 關鍵字,繼承某個類*/class Sport extends Human{ public $type; public function __construct($name,$type) { $this->name = $name; //給父類 $name 屬性賦值 $this->type = $type; } public function run() { $this->say(); //調用父類“說話”的方法 echo "我在正跑步,我是一員".$this->type."運動員...../n"; }}/** 創建一個“主持人”類,繼承“人”類* extends : 關鍵字,繼承某個類*/class Host extends Human{ public $television; public function __construct($name,$television) { $this->name = $name; $this->television= $television; } public function perform() { $this->eat(); //調用父類“吃飯”的方法 echo "我在正表演一個節目,我是".$this->television."電視臺的一名主持人...../n"; }}//實例化“運動員”類$nba = new Sport("喬丹","籃球");$nba->run();//實例化“主持人”類$tv = new Host("張三","北京衛視");$tv->perform();//輸出結果://父類說話的方法,姓名:喬丹 我在正跑步,我是一員籃球運動員..... //父類吃飯的方法 我在正表演一個節目,我是北京衛視電視臺的一名主持人.....?>
2.2、方法重寫:子類重寫父類的方法
<?phpclass Human{ public function say() { echo "父類說話的方法"; }}class Sport extends Human{ //重寫父類“說話”的方法 public function say() { echo "子類說話的方法"; }}$nba = new Sport();$nba->say();//輸出結果:子類說話的方法?>
2.3、訪問控制:public 、 protected 、private 關鍵字
public:定義公共的成員屬性或方法,任何地方都可使用
protected : 定義受保護的成員屬性或方法,只允許類本身或子類使用
private : 定義私有的成員屬性或方法,只允許類的本身使用
<?phpclass Human{ public $name; protected $sex; private $age; }//實例化對象,給公共屬性賦值可正常輸出結果,外部不能給protected、private受保護的成員屬性賦值或使用$worker = new Human();$worker->name = "張三";echo $worker->name;?>
2.4、static(靜態)關鍵字
1)、靜態屬性用于保存類的公有數據;
2)、靜態方法里面只能訪問靜態屬性或方法,不能使用 $this 偽變量;
3)、靜態成員不需要通過 new 關鍵字來實例化對象就可訪問使用;
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答