无论我输入什么,都找不到php array_filter函数或函数名无效

时间:2012-12-20 06:40:29

标签: php arrays

我从来没有使用过array_filter函数,因此无论我使用什么作为函数名称它给我一个错误

Warning: array_filter() expects parameter 2 to be a valid callback, function 'odd' not found or invalid function name in

我甚至采取了直接从php手册页复制粘贴示例的步骤,它给了我同样的错误。代码:

function odd($var) {
    // returns whether the input integer is odd
    return($var & 1);
 }

function calculate($res, $period, $elements, $per, $total, $brand = false) {

    $array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
    $array2 = array(6, 7, 8, 9, 10, 11, 12);

    echo "Odd :\n";
    print_r(array_filter($array1, "odd"));
}

我真的不知道该往哪里去。通常当我遇到问题时,我可以将代码完全复制并粘贴到php手册页上并从那里开始工作,但是如果他们的例子甚至不起作用,那就很难了。

2 个答案:

答案 0 :(得分:6)

我认为在你的情况下,函数odd不是一个独立的函数,而是你的类的方法。在这种情况下,你应该写

print_r(array_filter($array1, array($this,"odd")));

从你的班级中运行奇怪的方法

答案 1 :(得分:0)

如果您的类相同,并且您以递归方式调用方法,则 PHP不知道该方法是否属于每个类,这就是为什么要使用 WaitForInputIdle()在数组中:

$this