PHP類和物件

2021-10-19 10:42:01 字數 2522 閱讀 7837

類是物件導向程式設計的基本概念,通俗的理解類就是對現實中某乙個種類的東西的抽象, 比如汽車可以抽象為乙個類,汽車擁有名字、輪胎、速度、重量等屬性,可以有換擋、前進、後退等操作方法。

通常定義乙個汽車類的方法為:

class car }123456
類是一類東西的結構描述,而物件則是一類東西的乙個具體例項,例如汽車這個名詞可以理解為汽車的總類,但這輛汽車則是乙個具體的汽車物件。

物件通過new關鍵字進行例項化:

$car = new car();echo $car->getname();12
類與物件看起來比較相似,但實際上有本質的區別,類是抽象的概念,物件是具體的例項。類可以使程式具有可重用性。

類和物件的屬性:

在類中定義的變數稱之為屬性,通常屬性跟資料庫中的字段有一定的關聯,因此也可以稱作「字段」。屬性宣告是由關鍵字 public,protected 或者 private 開頭,後面跟乙個普通的變數宣告來組成。屬性的變數可以設定初始化的預設值,預設值必須是常量。

訪問控制的關鍵字代表的意義為:

public:公開的

protected:受保護的

private:私有的

演示:

<?phpclass  car $car = new car();echo $car->name;   //呼叫物件的屬性echo $car->color;  //錯誤 受保護的屬性不允許外部呼叫echo $car->price;  //錯誤 私有屬性不允許外部呼叫?>12345678910111213141516

php類和物件之建構函式和析構函式

php5可以在類中使用__construct()定義乙個建構函式,具有建構函式的類,會在每次物件建立的時候呼叫該函式,因此常用來在物件建立的時候進行一些初始化工作。

class car }$car = new car(); //例項化的時候 會自動呼叫建構函式__construct,這裡會輸出乙個字串123456
在子類中如果定義了__construct則不會呼叫父類的__construct,如果需要同時呼叫父類的建構函式,需要使用parent::__construct()顯式的呼叫。

同樣,php5支援析構函式,使用__destruct()進行定義,析構函式指的是當某個物件的所有引用被刪除,或者物件被顯式的銷毀時會執行的函式。

<?phpclass  car 

function __destruct() }$car = new car(); //例項化時會呼叫建構函式echo '使用後,準備銷毀car物件 

';unset($car); //銷毀時會呼叫析構函式123456789101112

php類和物件之static靜態關鍵字

靜態屬性與方法可以在不例項化類的情況下呼叫,直接使用類名::方法名的方式進行呼叫。靜態屬性不允許物件使用->操作符呼叫。

例:

<?phpclass  car 

//在這裡定義乙個靜態方法,實現速度累加10

public static function speedup()}$car = new car();car::speedup();  //呼叫靜態方法加速echo $car->getspeed();  //呼叫共有方法輸出當前的速度值123456789101112131415161718

php類和物件之物件的高階特性

物件比較,當同乙個類的兩個例項的所有屬性都相等時,可以使用比較運算子== 進行判斷,當需要判斷兩個變數是否為同乙個物件的引用時,可以使用全等運算子===進行判斷。

物件複製,在一些特殊情況下,可以通過關鍵字clone來複製乙個物件,這時__clone方法會被呼叫,通過這個魔術方法來設定屬性的值。

物件序列化,可以通過serialize方法將物件序列化為字串,用於儲存或者傳遞資料,然後在需要的時候通過unserialize將字串反序列化成物件進行使用。

例:

<?phpclass  car }$a = new car();$a->name = 'new car';$b = clone $a;if ($a == $b) echo '==';   //trueif ($a === $b) echo '==='; //false$str = serialize($a); //物件序列化成字串echo $str.'

';$c = unserialize($str); //反序列化為物件var_dump($c);12345678910111213141516171819

PHP類和物件

php中用class來定義類,用new例項化物件,用extends繼承類,不過只能單繼承,屬性和方法有public private和protected做訪問控制,預設為public,在類裡定義常量不需要 用 範圍解析符可以呼叫父類的方法,訪問類的靜態變數 靜態方法和常量。範圍解析操作符 也可稱作 p...

PHP類和物件

php類和物件 類是物件導向程式設計的基本概念,通俗的理解類就是對現實中某乙個種類的東西的抽象,比如汽車可以抽象為乙個類,汽車擁有名字 輪胎 速度 重量等屬性,可以有換擋 前進 後退等操作方法。通常定義乙個汽車類的方法為 class car 物件通過new關鍵字進行例項化 car new car e...

PHP類和物件

類是物件導向程式設計的基本概念,通俗的理解類就是對現實中某乙個種類的東西的抽象,比如汽車可以抽象為乙個類,汽車擁有名字 輪胎 速度 重量等屬性,可以有換擋 前進 後退等操作方法。通常定義乙個汽車類的方法為 class car 123456類是一類東西的結構描述,而物件則是一類東西的乙個具體例項,例如...