使用array_filter时出现意外的php通知和警告

S V*_*S V 2 php

我得到以下内容

注意:使用未定义的常量ARRAY_FILTER_USE_BOTH - 在第88行的C:\ projects\yada.php中假定为'ARRAY_FILTER_USE_BOTH'

警告:array_filter()最多需要2个参数,在第88行的C:\ projects\yada.php中给出3个

注意:使用未定义的常量ARRAY_FILTER_USE_BOTH - 在第91行的C:\ projects\yada.php中假定为'ARRAY_FILTER_USE_BOTH'

警告:array_filter()最多需要2个参数,在第91行的C:\ projects\yada.php中给出3个

代码如下

$unregistered_team_names = array_filter($data, function ($v, $k) {
    return strpos($k, 'unregistered_user_name_') !== false;
}, ARRAY_FILTER_USE_BOTH);
$unregistered_team_emails = array_filter($data, function ($v, $k) {
    return strpos($k, 'unregistered_user_email_') !== false;
}, ARRAY_FILTER_USE_BOTH);
Run Code Online (Sandbox Code Playgroud)

根据此处提供的文档,代码似乎有效 - http://php.net/manual/en/function.array-filter.php

回调永远不会被调用.

u_m*_*der 9

根据手册的changelog部分array_filter:

5.6.0 添加可选的flag参数和常量ARRAY_FILTER_USE_KEYARRAY_FILTER_USE_BOTH

因此,答案是:你的php版本5.6.