我有一个包含多个公共函数的类,这些函数都与同一个$_SESSION
索引/变量交互。与其在每次调用它们时都将该变量传递到每个函数中,我想简单地将其传递到类构造函数中,并让函数从$this->
中获取它。
我正在尝试做的事情的示例:
$_SESSION['test'] = array('foo', 'bar');
class MyClass {
// Pass by reference in ___construct arguments
public function __construct(&$test_var) {
$this->test_var = $test_var;
}
public function unset_foo() {
unset($this->test_var[0]);
}
}
$bar = new MyClass($_SESSION['test']);
$bar->unset_foo();
print_r($_SESSION['test']);
然后,结果应该是:
Array
(
[1] => 'bar'
)
但这行不通。
有没有办法做到这一点?
你总是必须通过 ref:
在此行中,您不是通过引用进行分配,而是复制值:
$this->test_var = $test_var;
只需在此处添加一个&
,以便$this->test_var
仍然保留对$_SESSION['test']
的引用:
$this->test_var = &$test_var;