作者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
1F:推 superGA:static $DataSource = new DataSource; 要拆成两行才会过 01/23 19:03
2F:→ superGA:static $DataSource; $DataSource = new DataSource; 01/23 19:04
3F:→ superGA:第二个问题好像也是一样 01/23 19:05