日韩精品欧美激情国产一区_中文无码精品一区二区三区在线_岛国毛片AV在线无码不卡_亞洲歐美日韓精品在線_使劲操好爽好粗视频在线播放_日韩一区欧美二区_八戒八戒网影院在线观看神马_亚洲怡红院在线色网_av无码不卡亚洲电影_国产麻豆媒体MDX

類成員變量被賦予實(shí)例化對象

時(shí)間:2017-02-23 22:33:27 類型:PHP
字號:    

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

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

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


class db{
	public function query(){
		echo "實(shí)際代碼自行腦補(bǔ)";
	}
}
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被賦值一個(gè)實(shí)例化對象, 所以子類就可以通過$this->db->query()來訪問了,之前的PHP框架可以在控制器中如此調(diào)用如:$this->db->query();$this->load->help()等, 實(shí)際上都是利用的這樣一個(gè)原理
	}
}

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