gpt4 book ai didi

php - 在 PHP >= 5.3 中使用 array_walk 等函数(和类似函数)修改数组

转载 作者:可可西里 更新时间:2023-11-01 13:40:20 25 4
gpt4 key购买 nike

PHP 有一些很棒的函数(如 array_walk),可让您处理数组中的每个元素。它们通常是这样设置的,因此您可以将要处理的数组指定为第一个参数,将应用于每个元素的回调函数指定为第二个参数。这些函数返回指示成功的 bool 值,而不是您可能期望的修改后的数组的副本。如果要修改数组,则必须通过引用传递数组,如 array_walk(&$my_array, 'my_callback');

但是,在 PHP 5.3 及更高版本中,如果您通过引用传递给函数调用,则会收到 E_DEPRECATED 错误。

有谁知道(如果存在的话)使用这些函数修改数组而不触发错误并且不显式抑制它们的正确方法?这些旧的数组处理函数是否有更新的替代方法。

最佳答案

在 PHP >= 5.3 中,值通过引用隐式传递,由函数定义决定。

array_walk() 的函数定义:

bool array_walk ( array &$array , callable $funcname [, mixed $userdata = NULL ] )

注意&$array。因此,您不需要在 PHP >= 5.3 的函数调用中通过引用显式传递数组。

array_walk($my_array, 'my_callback');

但是,您需要确保回调相应地通过引用接受它的值(如nickb 所示)。

另请查看 PHP 5.4 Call-time pass-by-reference - Easy fix available?

关于php - 在 PHP >= 5.3 中使用 array_walk 等函数(和类似函数)修改数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11616525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com