- 相關(guān)推薦
PHP中的類與對(duì)象入門知識(shí)
語法比較好理解,但面向?qū)ο笫蔷幊趟枷,需要一定的代碼量才能理解存在的意義。我們不妨來看看PHP中的類與對(duì)象入門知識(shí),以下僅供參考!
基本語法
定義類
class name{
public $user = '張三';
function getUser(){
return $this->user;
}
}
class 關(guān)鍵字,定義類的時(shí)候必須要有
name 類名稱,命名規(guī)則雷同變量
{ … } 類的代碼,寫在這里面
public 定義可見性,后面會(huì)講
$user 定義類屬性,很像變量
function getUser(){..} 定義類方法,很像函數(shù)
$this 偽變量,在類內(nèi)部調(diào)用方法、屬性時(shí)使用
調(diào)用類
只要看到 new xxx,這樣的語法,就一定是在實(shí)例化類。
//實(shí)例化類,$n 是一個(gè)對(duì)象
$n = new name();
//調(diào)用類屬性
echo $n->name;
//調(diào)用類方法,有括號(hào)的是方法
echo $n->getUser();
//靜態(tài)調(diào)用類屬性
name::$user;
name::getUser();
靜態(tài)調(diào)用,需要有 static 的修飾符,非本文重點(diǎn),略過。
類屬性
功能和語法 和 變量非常接近。
在類的內(nèi)部定義。
調(diào)用時(shí),必須通過類的實(shí)例化對(duì)象。
類方法
功能和語法 和 函數(shù)非常接近。
在類的內(nèi)部定義。
調(diào)用時(shí),必須通過類的實(shí)例化對(duì)象。
能使用 $this,而函數(shù)沒有。
$this
PHP預(yù)先定義好的偽變量,用于在類的內(nèi)部,調(diào)用其他方法和屬性。
只能用,不能對(duì)它賦值。
可見性
在類的內(nèi)部,可以使用可見性修飾符,來修飾類的屬性和方法。
class name{
public $user = 'test';
//定義受保護(hù)的類方法
protected function get(){
return $this->user;
}
function get2(){
// 正確,在類內(nèi)部可調(diào)用
$this->get();
}
}
$n = new name();
// 報(bào)錯(cuò),受保護(hù)的方法,外部不能調(diào)用。
$n->get();
public (公有)類的內(nèi)部、外部都可以調(diào)用
protected (受保護(hù))只能在類的內(nèi)部調(diào)用,包括子類
private (私有)只能在類的內(nèi)部調(diào)用,排除子類
魔術(shù)方法
由PHP 定義好的一系列有特殊意義的方法。
構(gòu)造方法
它是魔術(shù)方法中比較常用的一種。
class name{
function __construct( $name ){
echo $name;
}
}
$n = new name( '張三' );
問題:上面的代碼會(huì)輸出 ‘張三’ 嗎?
答案:原本不會(huì),因?yàn)闆]有調(diào)用的類方法。
實(shí)際:會(huì)輸出,因?yàn)?__construct() 是構(gòu)造方法,實(shí)例化類的時(shí)候自動(dòng)執(zhí)行。
注意:你給對(duì)象傳的參數(shù),會(huì)由構(gòu)造方法來接收。
還有別的魔術(shù)方法嗎?
下面的全是,用的不多,新人知道就好。
__destruct(),__call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()
魔術(shù)方法有什么特征
原則上,以“__”兩個(gè)下劃線開頭的都應(yīng)該是。
在特定場(chǎng)景自動(dòng)執(zhí)行。
類繼承
子類繼承父類的方法和屬性,來強(qiáng)化自己。
基本語法
class a{
function get(){
echo 'a';
}
}
class b extends a{
function get2(){
echo 'b';
}
}
$obj = new b();
//正確,繼承了 父類 a 的方法。
$obj->get();
子類 extends 父類 (繼承語法)
可見性為 private 的方法,不能繼承
父子類同名的方法、屬性,優(yōu)先調(diào)用子類
子類可通過 parent::方法() 來調(diào)用父類方法,包括構(gòu)造函數(shù)
總結(jié)
類與對(duì)象,是語法學(xué)習(xí)時(shí)的一座大山,想理解它的精髓更非一日之功,所以新人在這里,能了解語法即可,至于為什么這樣用,需要實(shí)戰(zhàn)中慢慢提高。
【PHP中的類與對(duì)象入門知識(shí)】相關(guān)文章:
php基礎(chǔ)入門知識(shí)08-27
PHP語法入門知識(shí)10-01
php入門小知識(shí)06-16
php編程語言入門知識(shí)05-22
PHP對(duì)象相關(guān)知識(shí)總結(jié)08-17
PHP新手之學(xué)習(xí)類與對(duì)象10-04
php關(guān)于PHP上傳入門學(xué)習(xí)知識(shí)點(diǎn)07-20
php中的curl使用入門教程06-20