访问公共PHP静态属性

时间:2016-05-15 13:22:29

标签: php object static

在调试期间,我已经删除了类,保留了我无法在类之外或在(在return语句中)使用

获取值的问题
_SITE::$cfg;

虽然

self::$cfg

是正确的

class _SITE {
     public static $cfg;

     public static function cfg_add($newcfg) {
            self::$cfg = $newcfg;
            return self::$cfg;
     }
}

感谢收到的答案,我需要澄清这个值需要更改/添加为数组。 修改后的示例 - 所以它是一个静态类,它使用_SITE :: $ cfg访问并使用_SITE :: cfg_add

更新

2 个答案:

答案 0 :(得分:0)

你不能直接获得类_SITE实例的值,因为你从未为该实例设置一个值。

但是要根据您的代码获取$cfg的值,并注意方法cfg_add()已分配数组值。

以这种方式做到

class _SITE {
   public static $cfg;

   public function __construct($value=array()) {
     self::$cfg = $value;
   }

   public static function cfg_add() {
     self::$cfg = array(1, 2, 3);
      return self::$cfg;
   }
}

$test =  _SITE::cfg_add();
foreach ($test as $key => $value) {
  echo "$value";
}

或以这种方式

$obj = new _SITE(array(1,2,3));
foreach ($obj::$cfg; as $key => $value) {
  echo "$value";
}

答案 1 :(得分:0)

除了创建此类的实例之外别无选择,因为它包含控制器引用的数据,它继承了模型类。