2
修改陣列在PHP中,我有以下代碼(消減下來,使其更易於閱讀):問題與參考
class Var {
public $arr;
function __construct($arr) {
$this->arr = $arr;
}
function set($k, $v) {
$this->arr[$k] = $v;
}
}
class Session extends Var {
function __construct() {}
function init() {
session_start();
parent::__construct($_SESSION);
}
}
$s = new Session();
$s->init();
$s->set('foo', 'bar');
var_dump($_SESSION);
在這一點上,我想$ _SESSION包含'foo' => 'bar'
。但是,$ _SESSION變量是完全空的。爲什麼會這樣?如何將$ _SESSION變量存儲爲屬性以便稍後通過引用對其進行修改?
我試過用__construct(&$arr)
代替__construct($arr)
,但那不起作用。
「但那不起作用。」 ---它實際上工作。但是,按照您的預期工作是不夠的。 – zerkms
是否因爲你沒有將'$ arr'聲明爲'array()'?所以在你的'''Var''構造函數中,'$ this-> arr = $ array();' –