重複の可能性:
クラス内のアクセス変数
クラス用のキャッシング機能を構築していて、「クラスグローバル」配列、つまり、すべてのインスタンスで同じであるが定数ではない配列が必要です。これはどのように行うことができますか?
重複の可能性:
クラス内のアクセス変数
クラス用のキャッシング機能を構築していて、「クラスグローバル」配列、つまり、すべてのインスタンスで同じであるが定数ではない配列が必要です。これはどのように行うことができますか?
静的変数でそれを実現できます。
しかし、グローバルな状態が良くないため、正直なところそうすべきではありません。
必要に応じて、次のようになります。
class SomeClass
{
static public $var = array();
}
クラス自体またはサブクラス内から、self::$var
または外部から$を使用してアクセスします。static::$var
SomeClass::$var
instanceOfSomeClass::$var
あなたの解決策はstatic
変数です!
<?php
// ...
class Foo {
public static $array;
public static function addValue($key, $value) {
self::$array[$key] = $value;
}
public static function getArrayKey($key) {
if(isset(self::$array[$key])) {
return self::$array[$key];
}
}
}
Foo::addValue('foo', 'bar');
echo(Foo::getArrayKey('foo'));
// ...
?>