-1

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

4

4 に答える 4

1

プロパティのデフォルト値の追加は、コンストラクター内で行う必要があります。プロパティを宣言するときにデフォルト値を追加することは、開発者が簡単に利用できるようにするためにPHPでロールインする、OO以外のことですが、ご覧のとおり、まだ十分にサポートされていません。

ソリューション:

class Foo
{
    private $var;

    public function __construct()
    {
        $this->var = 2 + 3
    }
}
于 2012-12-18T19:38:42.727 に答える
1

ドキュメントには、それが有効なプロパティ宣言であるとは記載されていません。それは特にその無効な例を述べています。

リンクから直接

<?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の言語構文の定義方法です。

于 2012-12-18T19:38:50.203 に答える
0

PHPは計算値をサポートしていませんが、コンパイル時に両方の値を技術的に知ることができます。

于 2012-12-18T19:36:43.083 に答える
0

PHPではできないという理由だけで。PHPの宣言を使用して、プロパティの割り当てを評価することはできません。なぜこのように実装されたのかわかりません。

于 2012-12-18T19:37:15.957 に答える