我有一个奇怪的错误,我希望这里有人可以帮助我,或者至少解释它为什么会发生。
我正在使用 __call 方法;
public function __call($method, $params) {
var_dump($params);
echo '<br/><br/>';
}
我用每个例子来称呼它:
$params = array('index' => 0, 'apikey' => 'aasdf');
$client->notAFunction($params)
这是一个不存在的方法,因此它将进入 __call 与 $method = notAFunction 和 $params 中的我的数组。
我预期的 __call 输出将是;
array(2) { ["index"]=> int(0) ["apikey"]=> string(5) "aasdf" }
但是,我得到的输出是;
array(1) { [0]=> array(2) { ["index"]=> int(0) ["apikey"]=> string(5) "aasdf" } }
现在,我知道使用 $params[0] 很容易“解决”这个问题,所以我不会寻找任何类似的答案。我在找;
- 为什么会这样?
- 我可以指望这总是发生吗?
- 我能做些什么让 __call 接收原始数组吗?