我想知道如何将更多参数传递给我的array_walk ..
$addresses = array('www.google.com', 'www.yahoo.com', 'www.microsoft.com');
$a = 'hey';
$b = 'hey';
array_walk($addresses, array($this, '_handle'), $a, $b); // $a and $b parameters doesn't get passed
private function _handle($address,$a, $b) {
echo $address; // www.google.com
echo $a // 012
echo $b // 012
}
Run Code Online (Sandbox Code Playgroud)
我如何传递参数?我必须传递超过5个参数..请教我..谢谢!
Dan*_*ple 17
第三个参数是混合数据类型.如果您有许多参数,我建议将它们放入一个数组 - 也许是一个关联数组来命名它们.然后你将它们拉出那个参数:
$addresses = array('www.google.com', 'www.yahoo.com', 'www.microsoft.com');
$params = array('first','second');
array_walk($addresses, array($this, '_handle'), $params);
private function _handle($address,$count, $params) {
echo $address; // www.google.com
echo $params[0]; // first
echo $params[1]; // second
}
Run Code Online (Sandbox Code Playgroud)
它只允许用户数据的一个参数。我建议将您的值作为数组传递。
array_walk($addresses, array($this, '_handle'), array($a, $b));
Run Code Online (Sandbox Code Playgroud)
传递的函数array_walk()需要2-3个参数.
传递多个变量以array_walk传递数组.
array_walk($addresses, array($this, '_handle'), array('a'=>$a, 'b'=>$b));
private function _handle($address, $k, $data){
echo $address;
echo $data['a'];
echo $data['b'];
}
Run Code Online (Sandbox Code Playgroud)