《PHP物件 模式與實踐》之高階特性

2021-09-22 10:35:37 字數 2075 閱讀 3614

高階特性

包括:1.靜態方法和屬性(通過類而不是物件來訪問資料和功能)

2.抽象類和介面(設計,實現分離)

3.錯誤處理(異常)

4.final類和方法(限制繼承)

5.***(自動委託)

6.析構方法(物件銷毀前的清理工作)

7.轉殖物件(建立物件的副本)

8.把物件解析成字串

ps,學會從記憶體的角度看**。想象計算機的微觀世界。

靜態方法的小例子

<?php 

class

staticexample

}print staticexample::$anum."

";staticexample::sayhello();

tips:

1.靜態方法不能訪問類中的普通屬性,因為那些屬性屬於乙個物件,但可以訪問靜態屬性。

2.我們不能再物件中呼叫靜態方法,因此不能再靜態方法中使用偽變數$this。

靜態方法的大例子

<?php 

class

shopproduct

public

function setid($id

)

public

static

function getinstance($id,pdo $pdo

)

if($row['type'] == "book")

else

if($row['type'] == "cd")

else

$product->setid($row['id']);

$product->setdiscount($row['discount']);

return

$product

; }

public

function

getproducerfirstname()

public

function

getproducermainname()

public

function setdiscount($num

)

public

function

getdiscount()

public

function

gettitle()

public

function

getprice()

function

getproducer()

function

getsummaryline(),";

$base .= ")";

return

$base

; }

}class cdproduct extends

shopproduct

function

getplaylength()

function

getsummaryline()";

return

$base

; }

}class bookproduct extends

shopproduct

function

getnumpages()

function

getsummaryline()";

return

$base

; }

}$dsn = "sqlite:c:/users/administrator/desktop/shop.db";

$pdo = new pdo($dsn,null,null

);$pdo->setattribute(pdo::attr_errmode,pdo::errmode_exception);

$obj = shopproduct::getinstance(1,$pdo

);echo

$obj->getsummaryline();

深入PHP物件導向 模式與實踐 高階特性(4)

final關鍵字可以終止類的繼承。final類不能有子類,final方法不能被覆寫。下面定義乙個final類 final class checkout class illegalcheckout extends checkout 將產生致命錯誤 如果只在checkout中宣告某個類方法為final,...

PHP設計模式之 高階工廠模式

php設計模式 工廠模式 建立型 乙個工廠製造多種商品 inte ce product 定義乙個獲取製造出來的產品的介面 inte ce product class creator describe 定義乙個創造產品的抽象類 author nick abstract class creator cl...

php物件的高階特性

物件比較,當同乙個類的兩個例項的所有屬性都相等時,可以使用比較運算子 進行判斷,當需要判斷兩個變數是否為同乙個物件的引用時,可以使用全等運算子 進行判斷。class car a new car b new car if a b echo true if a b echo false 物件複製,在一些...