如何在PHP中获取类全局变量?

时间:2012-07-27 08:59:30

标签: php scope

  

可能重复:
  Access variable in class

我正在为一个类构建一些缓存功能,并且想要一个“类全局”数组,即在所有实例中都相同但不是常量的数组。怎么办呢?

2 个答案:

答案 0 :(得分:0)

您可以使用静态变量来实现它。

但你老实说不应该,因为全球状态并不好。

如果必须,它看起来像:

class SomeClass
{
    static public $var = array();
}

您可以从类本身或子类中使用self::$varstatic::$var访问它,并从外部使用SomeClass::$var或$ instanceOfSomeClass::$var

答案 1 :(得分:-1)

您的解决方案是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'));
// ...
?>