[請益] Class的一些問題

看板PHP作者 (Victor)時間19年前 (2007/01/23 16:38), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串1/3 (看更多)
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

01/23 19:03, , 1F
static $DataSource = new DataSource; 要拆成兩行才會過
01/23 19:03, 1F

01/23 19:04, , 2F
static $DataSource; $DataSource = new DataSource;
01/23 19:04, 2F

01/23 19:05, , 3F
第二個問題好像也是一樣
01/23 19:05, 3F
文章代碼(AID): #15jSbhaI (PHP)
討論串 (同標題文章)
文章代碼(AID): #15jSbhaI (PHP)