在 php 中,如果我在静态类方法中有一个静态变量:
class Functions {
public static function fetch_id() {
static $id;
....
}
}
我可以从外部更改静态$ id的值吗? I.E.有可能做到:
Functions::$id = 'something new';
答案 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;
}
}