为什么不';新操作员创建链结构


Why doesn't new operator creates chain structure?

假设GeneralNews()返回thisCreateInstance()返回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  

分类代码通用新闻:

class GeneralNews {         
    public function GeneralNews(){
        return this;
    } 
    public static function CreateInstance(){  
        $strClassName = 'GeneralNews';   
        return new $strClassName;  
    }
}

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