靜態方法
(1)靜態方法不能訪問這個類中的普通屬性,因為那些屬性屬於乙個物件,但可以訪問靜態屬性;
(2)從當前類(不是子類)中訪問靜態方法或屬性,可以使用self關鍵字,self 指向當前類,就像 $this 指向當前物件一樣;
(3)不能再物件中呼叫靜態方法,靜態方法和屬性又被稱為類方法和類屬性,因此不能再物件中使用偽變數 $this 。
靜態方法的優點:
(1)在**的任何地方都可以用(假設可以訪問該類);
(2)類的每個例項都可以訪問類中定義的靜態屬性,可以利用靜態屬性來設定值,該值可以被類的所有物件使用;
(3)不需要例項物件就能訪問靜態屬性或方法。
<?php$pdo = new pdo('mysql:host=localhost;dbname=mydb','root'); //
生成乙個 pdo(php data object) 物件
class
shopproduct
/*** @return mixed 這種只返回屬性值的方法稱為「訪問方法」,也稱為 getter 和 setter
*/public
function
getproducerfirstname()
/*** @return mixed 獲取 姓 的訪問方法
*/public
function
getproducermainname()
/*** @param $num 打折的**
*/public
function setdiscount($num
)
/*** @return int 折扣的訪問方法
*/public
function
getdiscount()
/*** @return mixed book名或cd名的訪問方法
*/public
function
gettitle()
/*** @return mixed 折扣後的**
*/public
function
getprice()
/*** @return string 作者
*/public
function getproducer()
/*** @return string 發票的摘要資訊
*/public
function
getsummaryline()
( ,) ";
return
$base
; }
/*** @param $id id 的訪問方法, setter
*/public
function setid($id
)
//根據查詢資料的資料型別,返回特定型別的 shopproduct 物件,這個方法沒有使用任何例項的屬性和方法,因此把它定義為乙個靜態方法(static),只要有乙個有效的 pdo 物件,就可以在程式的任何地方呼叫這個方法。這個方法就像工廠一樣,可以接受原始資料產生特定型別的物件。
public
static
function getinstance($id,pdo $pdo
)
switch($row['type'])
$product -> setid($row['id']);
$product -> setdiscount($row['discount']);
return
$product
; }}//
若派生類沒有定義構造方法,則它在例項化是會自動呼叫父類的構造方法。子類預設繼承父類所有的 public 和 protected 方法,但不繼承 private 方法和屬性
class bookproduct extends
shopproduct
/*** @param $numpages 書的頁數
* @return mixed 總頁數
*/public
function
getnumberofpages()
/*** 子類(派生類)可以覆蓋和修改父類(基類或超類)的功能
* @return string book發票的摘要資訊
*/public
function
getsummaryline()
";return
$base
; }
}class cdproduct extends
shopproduct
/***/public
function
getplaylength()
/*** @return string cd發票的摘要資訊
*/public
function
getsummaryline()
";return
$base
; }
}$product = shopproduct::getinstance(1,$pdo); //
該靜態方法根據傳入 id 的不同生成特定型別的物件
php中靜態方法的和屬性的使用
class person class student extends person 輸出成員屬性值 echo person country.p1 new person echo p1 country 報錯 訪問靜態成員方法 person mycountry 靜態方法也可通過物件訪問 p1 mycou...
PHP 中 static 靜態屬性和靜態方法的呼叫
這裡分析了php物件導向中static靜態屬性和靜態方法的呼叫。關於它們的呼叫 能不能呼叫,怎麼樣呼叫 需要弄明白了他們在記憶體中存放位置,這樣就非常容易理解了。靜態屬性 方法 包括靜態與非靜態 在記憶體中,只有乙個位置 而非靜態屬性,有多少例項化物件,就有多少個屬性 header content ...
php中static靜態屬性和靜態方法的呼叫
本文介紹php物件導向中static靜態屬性和靜態方法的呼叫,例項分析了static靜態屬性和靜態方法的原理與呼叫技巧,需要的朋友可以參考下。這裡分析了php物件導向中static靜態屬性和靜態方法的呼叫。關於它們的呼叫 能不能呼叫,怎麼樣呼叫 需要弄明白了他們在記憶體中存放位置,這樣就非常容易理解...