http://php.net/manual/en/language.oop5.properties.php顯示下面的例子,我失敗了。爲什麼我不能在類屬性聲明中做數學?
class SimpleClass{
private $var3 = 1+2;
}
Parse error: syntax error, unexpected '+', expecting ',' or ';'....
任何想法,爲什麼?
PHP版本5.4.9
http://php.net/manual/en/language.oop5.properties.php顯示下面的例子,我失敗了。爲什麼我不能在類屬性聲明中做數學?
class SimpleClass{
private $var3 = 1+2;
}
Parse error: syntax error, unexpected '+', expecting ',' or ';'....
任何想法,爲什麼?
PHP版本5.4.9
的文件從來沒有說,它是一個有效的財產申報。它特別聲明瞭它的一個無效的例子。
直接從你的鏈接
<?php
class SimpleClass
{
// invalid property declarations:
public $var1 = 'hello ' . 'world';
public $var2 = <<<EOD
hello world
EOD;
public $var3 = 1+2;
public $var4 = self::myStaticMethod();
public $var5 = $myVar;
// valid property declarations:
public $var6 = myConstant;
public $var7 = array(true, false);
// This is allowed only in PHP 5.3.0 and later.
public $var8 = <<<'EOD'
hello world
EOD;
}
?>
這是語言的語法是多麼的PHP定義。
PHP不支持計算值,即使這兩個值在技術上可以在編譯時是已知的。
僅僅因爲你不能在PHP中。您不能在PHP中使用聲明來評估屬性分配。不知道爲什麼這樣實施。
爲屬性添加默認值應在構造函數內完成。在聲明屬性時添加默認值只是一個非OO的東西,它會在PHP中滾動以使開發人員的生活變得更容易,但是 - 正如您所看到的 - 它還不被支持。
解決辦法:
class Foo
{
private $var;
public function __construct()
{
$this->var = 2 + 3
}
}
5線上面的例子中,你的鏈接頁面上:'//無效屬性聲明:' – Yoshi
頁面鏈接搞笑說這不能做 – 2012-12-18 19:37:08
,你必須閱讀_entire_例如 – thescientist