0
GeneralNews()
がthis
とCreateInstance()
と返されたとすると、最初の2つの方法は機能しますが、最後の方法は失敗します。新しい演算子がチェーン構造を作成しないのはなぜですか?
なぜわからないのですか?
$objGeneralNews = new GeneralNews();
$arrDataList = $objGeneralNews->SetWhere('news01date="2011-01-01"')->GetFrontList();
var_dump($arrDataList); //This method works
$arrDataList = GeneralNews::CreateInstance()->SetWhere('news01date="2011-01-01"')->GetFrontList();
var_dump($arrDataList); //This method works
$arrDataList = (new GeneralNews())->SetWhere('news01date="2011-01-01"')->GetFrontList();
var_dump($arrDataList); //This method doesn't works
クラスコードGeneralNews:確かに
class GeneralNews {
public function GeneralNews(){
return this;
}
public static function CreateInstance(){
$strClassName = 'GeneralNews';
return new $strClassName;
}
}
CreateInstance()とGeneralNewsのコンストラクタ関数のコードを投稿できますか? –