2016-09-23 7 views
1

私はPHPでこのコードをやろうとしている:クラスメソッドで静的変数を正しく使用する方法は?

class T { 

    public $y = 4; 

    public function y() { return $this->y; } 

    public function q() 
    { 
     static $j = $this->y; 
     echo $j; 
    } 
} 

$r = new T(); 
$r->q(); 

を、私は次のエラーを取得する:

Fatal error: Constant expression contains invalid operations in C:\xampp\htdocs\dermaquality\test.php on line 13 
static $j = $this->y; 

私は手動で値を設定した場合、私が設定している場合、そこには問題はありませんが、 y()または$ this-> yを呼び出す値は、そのエラーを取得します。 私はなぜそれが分かりませんか?

+0

あなたが行く:http://php.net/manual/fr/language.oop5.static.php – olibiaz

+0

静的プロパティは、矢印演算子を使ってオブジェクトを介してアクセスすることはできません - >。 http://php.net/manual/en/language.oop5.static.php – developer

答えて

1

式の結果である静的変数に値を割り当てると、解析エラーが発生します。ここ

static $int = 0;   // correct 
static $int = 1+2;  // wrong (as it is an expression) 
static $int = sqrt(121); // wrong (as it is an expression too) 
関連する問題