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