作者StubbornLin (Victor)
看板PHP
標題[請益] Class的一些問題
時間Tue Jan 23 16:38:01 2007
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