为什么PHP的函数参数定位如此奇怪?

时间:2018-08-31 07:19:54

标签: php

PHP是一种易于学习的语言,但触发我的一件事是PHP在函数参数中的位置。

示例1

array_walk($array, $callback);
array_map($callback, $array);

示例2

array_push($array, $mixed);
array_search($mixed, $array);

这根本没有任何意义。 PHP开发人员会故意这样做吗?

1 个答案:

答案 0 :(得分:4)

这与它们对数组的处理有关。 array_walk通过引用修改数组,而array_map返回新数组。

同样,array_push通过引用修改数组,array_search从数组中返回一个值。

数组在参数中排在首位;将倾向于表示该数组将被函数修改。作为开发人员,了解哪些函数可能会修改传入的数组非常有用。

示例:

<?php

$myArray = [1,2,3];
array_push($myArray,4);
var_dump($myArray); // array(1,2,3,4);

$myArray = [1,2,3]; 
$result = array_map(function ($val) { return $val * 2; }, $myArray);
var_dump($myArray); // array(1,2,3);
var_dump($result); // array(2,4,6);