私はクラスの各インスタンスで変数を使用しようとしています。1人のユーザーリクエスト中にPHPの静的変数
私の例のクラス:
class test {
private static $gvalue;
function setValue($value)
{
$this->gvalue = $value;
}
function getValue()
{
return $this->gvalue;
}
}
は今、私はこのクラスの「テスト」のインスタンスに作成し、いくつかの値をプリントアウトします。
$obj = new test();
$obj2 = new test();
echo "1: ";
echo $obj->getValue();
echo "/";
echo $obj2->getValue();
$obj->setValue("green");
echo "<BR>2: ";
echo $obj->getValue();
echo "/";
echo $obj2->getValue();
私の期待は次のような出力を得ることだった。
1:/ 2:グリーン/グリーン
しかし、結果は次のとおりです。
1:/ 2:グリーン/
私は間違ったことを理解しましたか?それとも、PHPでは不可能ですか? 最後のゴール。インスタンス(__construc)の作成中にいくつかの変数/配列を設定し、コード中のすべてのインスタンス(ユーザーの要求ごと)に設定したいと思います。
静的変数を使用する場合は、あなただけのダブルコロンを使用することができます。 :それらと一緒に作業する –
http://php.net/manual/en/language.oop5.paamayim-nekudotayim.php –
静的変数は、特定のオブジェクトではなくクラス全体に関連付けられます。そのため、あなたは '$ self'を使ってそれらにアクセスしません。 – Barmar