2011-01-07 27 views
1
if(!$id){ 
if($page){ // load by name 
$r=Page::getInstanceByName($page); 
    if($r && isset($r->id))$id=$r->id; 
    unset($r); 
} 

我是oop的新手,所以我無法理解這行很好,($ r = Page :: getInstanceByName($ page);)任何人都可以解釋它對我來說。謝謝,php ---在if循環中的一行

+0

Page :: getInstanceByName($ page)您可以調用靜態方法:類「Page」類的`getInstanceByName`,其參數名爲`$ page` – cristian 2011-01-07 09:41:27

回答

2

類「頁」有一個函數getInstanceByName,你打電話。

該函數是靜態的,這意味着你可以調用它而不需要實際製作一個對象。它不需要Page類中的任何內容。

,而不是:

$myPage = new Page(); 
$myPage->getInstanceByName($page); 

功能可能是這樣的;

public static function getInstanceByName($page){ 
    ... 
} 
0
$r = Page::getInstanceByName($page); 
  • 調用一個靜態方法getInstanceByNamePage類(這應該是公共靜態方法)
  • $page是參數由上述靜態方法通入靜態方法
  • 結果返回將設爲變量$r
+0

類頁面,而不是對象頁面。一個對象是一個類的實例。 – 2011-01-07 09:45:56

2

這是一個Factory method pattern設計,用於從給定頁面規範返回對象(很可能是一個頁面名稱)。