Изучаю PHP функцию array_filter
, на сайте w3school наткнулся на непонятный код,
function test_odd($var)
{
return($var & 1);
}
$a1=array("a","b",2,3,4);
print_r(array_filter($a1,"test_odd"));
после фильтрации непонятно почему возвращается
Array ( [3] => 3 )
Что делает строка return($var & 1);
?
В чем предназначение оператора &
?
Если можно ответе подробно , потому что это совсем незнакомый синтаксис.
Функция выполняет побитовую операцию. В процедуре проверяется нечетность. Все нечетные числа имеют младший бит 1
, четные числа - 0
. Выполняется AND
двух числел. Например, 3
представляется как 11
в двоичном коде. 11 & 01 = 01
, 1
это true
, поэтому число нечетное.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Laravel выводит ошибку которая четко говорит что нельзя вызывать member функцию first() на массиве