1

参照による割り当て$b = &$a)と参照による変数の受け渡しがあることを理解しています function foo( &$var )

これがどのように機能するのかわかりません:return($var & 1) & return(!($var & 1))私はここでこの断片を見ました。

<?php

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

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

    $array1 = array(1, 2, 3, 4, 5);
    $array2 = array(6, 7, 8, 9, 10, 11, 12);

    print_r(array_filter($array1, "odd"));
    // Array ( [0] => 1 [2] => 3 [4] => 5 ) //1,3,5 ..odd

    echo "<br>";

    print_r(array_filter($array2, "even")); 
    //Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 ) 6,8,10,12...even

    // I tested with these variables
    echo "<br><br>";

    $var=22;

    echo(odd($var));     //prints 0
    var_dump(odd($var)); //int 0


    $var=11;

    echo (even($var));   //prints nothing
    var_dump(even($var));//boolean false

?> 
4

1 に答える 1

5

&ここではビット単位の「and」であり、参照演算子ではありません。& 1設定された最下位ビットかどうかをチェックします。奇数の場合は設定されますが、偶数の場合は設定されません。

于 2012-06-03T16:37:49.583 に答える