看板 PHP 關於我們 聯絡資訊
function getDataSource(){ static $IsCreated = false; static $DataSource ; if(!$IsCreated){ $DataSource = new DataSource; $IsCreated = true; } return $DataSource; } 在這裡,我想創造一個唯一的DataSource這個class的reference 透過這個函數取得,但是這樣看起來很蠢 我用之前在C++裡面的寫法 function getDataSource(){ static $DataSource = new DataSource; return $DataSource; } 但是卻得到像這樣的錯誤訊息 Parse error: parse error, unexpected T_NEW in /home/customer/kinmen.info/www/test.php on line 38 使用的版本是4.3.11 請問是因為static的變數 在這個版本裡規定 本來就不能使用new這個operator 還是我寫的方式不對? 接著,還有一個問題就是,直接使用Class::Function取得的Class Refrence 去做->然後存取東西也會出錯 echo DataSource::getDataSource()->GetData(); 錯誤訊息 Parse error: parse error, unexpected T_OBJECT_OPERATOR, expecting ',' or ';' in /home/customer/kinmen.info/www/test.php on line 52 而修正問題的方式我先用一個變數去接class的refrence 然後再操作這個變數就解決了 $DataSource = DataSource::getDataSource(); echo $DataSource->GetData(); 但是我還是希望能夠直接操作回傳來的class,請問該怎樣寫呢? -- VICTOR工作室 | PTT遊戲設計版隆重開幕! | 不管是新手老手,程式美工音樂企劃.... URL : http://www.kinmen.info/vic/ | 都歡迎來遊戲設計版參與討論 XD | 戰略高手> C/C++ | GameTopics> Visual Basic 6.0 | GameDesign -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.70.204
superGA:static $DataSource = new DataSource; 要拆成兩行才會過 01/23 19:03
superGA:static $DataSource; $DataSource = new DataSource; 01/23 19:04
superGA:第二個問題好像也是一樣 01/23 19:05