2011-01-07 9 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'と呼ばれる引数を持つ' Page'の 'static'メソッドを' getInstanceByName'と呼んでいます。 – cristian

答えて

2

クラス "ページ"には、呼び出している関数getInstanceByNameがあります。

この関数は静的で、実際にオブジェクトを作成せずに呼び出すことができます。 Pageクラスからは何も必要ありません。対照的に、

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

関数は次のようになります。クラスPageに静的メソッドgetInstanceByNameを呼び出す

public static function getInstanceByName($page){ 
    ... 
} 
0
$r = Page::getInstanceByName($page); 
  • $page(これは、パブリック静的メソッドであるべきである)は、引数が上記静的方法で静的メソッドに
  • 結果のリターンを渡すあります変数に設定されます$r
+0

クラスページ、オブジェクトページではありません。オブジェクトはクラスのインスタンスです。 –

2

与えられたページ指定(たぶんページ名)からオブジェクトを返すのはFactory method patternです。