7

以前に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 のマニュアル ページからコードを正確にコピー アンド ペーストし、そこから戻って作業することができますが、それらの例が機能しない場合は、それが難しくなります。

4

2 に答える 2

11

あなたの場合、関数oddはスタンドアロン関数ではなく、クラスのメソッドだと思います。その場合、あなたは書くべきです

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

クラスから奇妙なメソッドを実行する

于 2014-05-10T14:02:59.683 に答える