我有这个奇怪的错误,我希望有人可以帮助我,或者至少解释它为什么会发生。
我正在使用__call方法;
public function __call($method, $params) {
var_dump($params);
echo '<br/><br/>';
}
我用每个例子来称呼它:
$params = array('index' => 0, 'apikey' => 'aasdf');
$client->notAFunction($params)
这是一个不存在的方法,因此它将使用$ method = notAFunction和$ params中的数组进入__call。
__call的预期输出是;
array(2) { ["index"]=> int(0) ["apikey"]=> string(5) "aasdf" }
然而,我得到的是输出;
array(1) { [0]=> array(2) { ["index"]=> int(0) ["apikey"]=> string(5) "aasdf" } }
现在,我知道这很容易通过使用$ params [0]来“解决”,所以我不会寻找任何类似的答案。 我在找;
答案 0 :(得分:4)
预期功能。 $params
方法中的参数__call
接收参数方法得到的数据。
有关说明,请参阅http://php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.methods。