在数组中的每个对象上调用函数的最佳方法?没有for循环?
Best way to call function on every object in array? Without for loop?
我很好奇是否有更好的方法来完成我正在做的事情。我是 php 的新手,所以我很想知道其他花更多时间使用该语言的人的看法。
我想做什么: 对数组中的每个对象调用一个函数
我在做什么:
array_map(function($object) { $object->loadEvents(); }, $patients);
这很好,而且有效。我也可以使用 for 循环 ,
我为什么要问: 我已经习惯了在没有循环的时候不使用 for 循环,所以我想出了一个方法来使用 array_map。问题是,无论我在哪里看,似乎人们都在使用 array_map 将结果映射到新数组。当我基本上想要 array_map 的功能但没有 return 值时。
有没有更好的方法?在此之外还有一个for循环? for循环是更好的方法吗?
使用循环有什么问题?这正是它设计的确切目的。
foreach ($patients as $patient) {
$patient->loadEvents();
}
每个人都简单明了。编写冗长的代码来完成同样的工作有什么意义,只是因为看起来 "cool" 或者每个人都在做什么?
I've become accustomed to not using for loops when I don't have to, so I figured out a way to use array_map.
您因为自己设定的不使用循环的任意规则而错误地使用了 array_map()
?
PHP 中用于遍历数组的常用习惯用法是 foreach
运算符。 array_walk
和 array_map
可以使用,但它们并没有成为常见的习语,因为直到 PHP 的相对较新版本之前,创建匿名函数并不方便。在 PHP 5.3 之前,您必须调用 create_function()
才能动态创建函数。所以 array_walk
和 array_map
通常只在有一个命名函数可以做你想做的事情时使用,例如
$array = array_map('trim', $array);
但即使现在您可以使用 function
创建匿名函数,许多人仍然发现
array_walk($array, function($x) {
...
});
可读性低于
foreach ($array as $xx) {
...
}
array_map
比 array_walk
更常用,因为它可以用作更大表达式的一部分。使用 foreach
时,您将不得不使用一个循环来推入结果数组,然后在其后跟代码以对该数组进行操作。
我很好奇是否有更好的方法来完成我正在做的事情。我是 php 的新手,所以我很想知道其他花更多时间使用该语言的人的看法。
我想做什么: 对数组中的每个对象调用一个函数
我在做什么:
array_map(function($object) { $object->loadEvents(); }, $patients);
这很好,而且有效。我也可以使用 for 循环 ,
我为什么要问: 我已经习惯了在没有循环的时候不使用 for 循环,所以我想出了一个方法来使用 array_map。问题是,无论我在哪里看,似乎人们都在使用 array_map 将结果映射到新数组。当我基本上想要 array_map 的功能但没有 return 值时。
有没有更好的方法?在此之外还有一个for循环? for循环是更好的方法吗?
使用循环有什么问题?这正是它设计的确切目的。
foreach ($patients as $patient) {
$patient->loadEvents();
}
每个人都简单明了。编写冗长的代码来完成同样的工作有什么意义,只是因为看起来 "cool" 或者每个人都在做什么?
I've become accustomed to not using for loops when I don't have to, so I figured out a way to use array_map.
您因为自己设定的不使用循环的任意规则而错误地使用了 array_map()
?
PHP 中用于遍历数组的常用习惯用法是 foreach
运算符。 array_walk
和 array_map
可以使用,但它们并没有成为常见的习语,因为直到 PHP 的相对较新版本之前,创建匿名函数并不方便。在 PHP 5.3 之前,您必须调用 create_function()
才能动态创建函数。所以 array_walk
和 array_map
通常只在有一个命名函数可以做你想做的事情时使用,例如
$array = array_map('trim', $array);
但即使现在您可以使用 function
创建匿名函数,许多人仍然发现
array_walk($array, function($x) {
...
});
可读性低于
foreach ($array as $xx) {
...
}
array_map
比 array_walk
更常用,因为它可以用作更大表达式的一部分。使用 foreach
时,您将不得不使用一个循环来推入结果数组,然后在其后跟代码以对该数组进行操作。