在PHP中更改静态函数内部的静态变量的值

时间:2014-07-15 23:14:32

标签: php static

php 中,如果我在静态类方法中有一个静态变量:

class Functions {
    public static function fetch_id() {
       static $id;

       ....
    }
}

我可以从外部更改静态$ id的值吗? I.E.有可能做到:

Functions::$id = 'something new';

1 个答案:

答案 0 :(得分:0)

即使有可能这也是一个坏主意,因为很难分辨谁,何地,何时改变了价值。毕竟局部变量是局部变量。

如果您想要全局访问,请将其置于全局上下文中,或者提供设置/获取该局部变量的方法。

如果您不想总是传递新值,那么您可以在该方法中使用if语句:

class Functions {
    public static function fetch_id($arg=null) {
       static $id=null;
       if($arg!==null){
           $id=$arg;
           return null;
       }
       if( $id===null ){
           return false;
       }
       return $id;
    }
}