糯米文學吧

位置:首頁 > 計算機 > php語言

PHP中的類與對象入門知識

php語言4.75K

語法比較好理解,但面向對象是編程思想,需要一定的代碼量才能理解存在的意義。我們不妨來看看PHP中的類與對象入門知識,以下僅供參考!

PHP中的類與對象入門知識

基本語法

定義類

class name{

public $user = '張三';

function getUser(){

return $this->user;

}

}

class 關鍵字,定義類的時候必須要有

name 類名稱,命名規則雷同變量

{ … } 類的代碼,寫在這裏面

public 定義可見性,後面會講

$user 定義類屬性,很像變量

function getUser(){..} 定義類方法,很像函數

$this 偽變量,在類內部調用方法、屬性時使用

調用類

只要看到 new xxx,這樣的語法,就一定是在實例化類。

//實例化類,$n 是一個對象

$n = new name();

//調用類屬性

echo $n->name;

//調用類方法,有括號的是方法

echo $n->getUser();

//靜態調用類屬性

name::$user;

name::getUser();

靜態調用,需要有 static 的'修飾符,非本文重點,略過。

類屬性

功能和語法 和 變量非常接近。

在類的內部定義。

調用時,必須通過類的實例化對象。

類方法

功能和語法 和 函數非常接近。

在類的內部定義。

調用時,必須通過類的實例化對象。

能使用 $this,而函數沒有。

$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() 是構造方法,實例化類的時候自動執行。

注意:你給對象傳的參數,會由構造方法來接收。

還有別的魔術方法嗎?

下面的全是,用的不多,新人知道就好。

__destruct(),__call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo()

魔術方法有什麼特徵

原則上,以“__”兩個下劃線開頭的都應該是。

在特定場景自動執行。

類繼承

子類繼承父類的方法和屬性,來強化自己。

基本語法

class a{

function get(){

echo 'a';

}

}

class b extends a{

function get2(){

echo 'b';

}

}

$obj = new b();

//正確,繼承了 父類 a 的方法。

$obj->get();

子類 extends 父類 (繼承語法)

可見性為 private 的方法,不能繼承

父子類同名的方法、屬性,優先調用子類

子類可通過 parent::方法() 來調用父類方法,包括構造函數

總結

類與對象,是語法學習時的一座大山,想理解它的精髓更非一日之功,所以新人在這裏,能瞭解語法即可,至於為什麼這樣用,需要實戰中慢慢提高。

標籤:PHP