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でロールインする、OO以外のことですが、ご覧のとおり、まだ十分にサポートされていません。
ソリューション:
class Foo
{
private $var;
public function __construct()
{
$this->var = 2 + 3
}
}
ドキュメントには、それが有効なプロパティ宣言であるとは記載されていません。それは特にその無効な例を述べています。
リンクから直接
<?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の宣言を使用して、プロパティの割り当てを評価することはできません。なぜこのように実装されたのかわかりません。