array_map 中处理数组相乘是什么原理?

function myfunction($v)
{
return ($v*$v);
}

$a=array(1,2,3,4,5);

/*

  • 下面这种直接调用做 数组乘法是被禁止的

  • 但是通过array_map 调用是不会报错的

*/ 
//print_r(myfunction($a));

/*

  • 这么调用是不会报错的,有人知道原理是什么吗?

*/
print_r(array_map("myfunction",$a));


繁花如伊
浏览 800回答 3
3回答

手掌心

array_map

杨魅力

对array_map 的函数有误解 array_map 会遍历数组中的每一个元素,然后用函数做运算,而非直接调用函数。

临摹微笑

如果用PHP来实现array_map:function array_map(callable $callback, array $array):array {     $result = [];     $idx = 0;    foreach($array as $row) {         $result[] = $callback($row, $idx);         $idx++;     }    return $result; }
打开App,查看更多内容
随时随地看视频慕课网APP