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ループの行
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ループの行
クラス "ページ"には、呼び出している関数getInstanceByNameがあります。
この関数は静的で、実際にオブジェクトを作成せずに呼び出すことができます。 Pageクラスからは何も必要ありません。対照的に、
:
$myPage = new Page();
$myPage->getInstanceByName($page);
関数は次のようになります。クラスPage
に静的メソッドgetInstanceByName
を呼び出す
public static function getInstanceByName($page){
...
}
$r = Page::getInstanceByName($page);
$page
(これは、パブリック静的メソッドであるべきである)は、引数が上記静的方法で静的メソッドに$r
クラスページ、オブジェクトページではありません。オブジェクトはクラスのインスタンスです。 –
与えられたページ指定(たぶんページ名)からオブジェクトを返すのはFactory method patternです。
Page :: getInstanceByName($ page) '$ page'と呼ばれる引数を持つ' Page'の 'static'メソッドを' getInstanceByName'と呼んでいます。 – cristian