0

假设GeneralNews()returnthisCreateInstance()return this,前两种方法有效,但最后一种方法失败。

我不明白为什么?

$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;  
    }
}
4

1 回答 1

2

实际上,直接引用new表达式对象在 PHP 5.3中不起作用,但在 PHP 5.4 中起作用

于 2012-03-19T07:03:34.367 回答