亚洲色蝴蝶中文娱乐网,在线亚洲欧美一区二区中文字幕,无人视频在线观看视频高清视频,99午夜国产精品一区二区,人人妻人人爽人人狠狠

類成員變量被賦予實例化對象

時間:2017-02-23 22:33:27 類型:PHP
字號:    

新學(xué)習(xí)PHP, 對php訪問類屬性$this->name,$this->age,$this->getName()等可能會比較容易理解接受, 但看到$this->db->query()這種用法往往會比較困惑, 感覺有些怪怪的, 為什么會有連續(xù)"->"的用法呢? 

其實, 這個也不是很難, 當(dāng)$this->db = new Db()這樣操作后, 那么$this->db整個就是一個實例化對象了, 所以, 就可以通過$this->db->query()這里訪問Db類里面的方法了, 基本上一些PHP框架的控制器都是按照這種原理來寫的,具體可以看下面的例子.

1. db.php文件代碼[將在構(gòu)造函數(shù)中被實例化的類文件]


class db{
	public function query(){
		echo "實際代碼自行腦補";
	}
}
2. Controller.php文件



header("Content-Type: text/html; charset=UTF-8");
include("db.php");
class Controller{
	public $db;
	public function __construct(){
		$this->db = new db(); 
		//$this->db被賦值一個實例化對象, 所以子類就可以通過$this->db->query()來訪問了,之前的PHP框架可以在控制器中如此調(diào)用如:$this->db->query();$this->load->help()等, 實際上都是利用的這樣一個原理
	}
}

class Test extends Controller{
	public function getAll(){
		$this->db->query();
		//因為父類實現(xiàn)了 對 類屬性 $db 實例化 賦值, 所以
		//所以這里$this->db是一個實例化對象, 故而可以直接訪問對象的方法 
	}
}
//$test = new Test();
//$test->db->query();