【发布时间】:2023-04-09 18:59:02
【问题描述】:
我已经测试了以下内容,它适用于 PHP 5.2 和 5.3,但是,据我所知,它没有在任何地方记录,所以我正在评估它的使用。
我在一个名为 isValid 的类中有一个函数,它会检查哈希值以查看给定值是否在允许值集中。有一些值 有效,但已弃用;我希望我的 isValid 函数将传入的值更新为当前值并返回 true。
当我自己调用它时很好,但是,当用作 array_filter 的回调时,我也想使用此方法。
这是一个测试用例,它按预期生成了一个值为 2,3,4,5,6 的数组。
<?php
$test = array(1, 2, 3, 4, 5);
echo print_r(array_filter($test, 'maptest'), true);
function maptest(&$value)
{
$value ++;
return true;
}
所以 StackOverflow:这是允许的,还是未记录的功能可能会在未来消失/停止工作/导致错误?
【问题讨论】:
-
谁说它是无证的?回调是一个常规函数,就像任何其他函数一样。
-
只是想知道,你为什么要做
echo print_r($var, true);而不是print_r($var)? -
嗨,笨蛋 - 我找不到它明确支持它的文档,文档指出它不适用于 call_user_function 例如。 NullUserException - 只是习惯将 print_r 的输出放在标记之间的一行中。@NullUserException,这很有趣,因为就像他在使用 echo print_r();如果你不设置 true 它会在数组之后回显一个 1,但是如果你删除除了这个 true 之外还会回显它的工作方式与 echo 和 true 相同,有人可以解释一下吗?@Vadim
print_r()采用可选的布尔参数,如果为真则返回输出而不是打印(默认)
标签: php arrays reference callback array-filter