为什么我不能使用函数设置公共成员变量?
<? class TestClass { public $thisWorks = "something"; public $currentDir = dirname( __FILE__ ); public function TestClass() { print $this->thisWorks . "\n"; print $this->currentDir . "\n"; } } $myClass = new TestClass(); ?>
运行它产生:
Parse error: Syntax error,unexpected '(',expecting ',' or ';' in /tmp/tmp.PHP on line 7
您不能在变量声明中使用表达式.您只能使用常量值. dirname()可能不会出现在此位置.
如果您使用PHP 5.3,您可以使用:
public $currentDir = __DIR__ ;
否则,您必须在__constructor中初始化$this-> currentDir.