Помогите непонятный PHP код return($var & 1);

148
03 августа 2018, 08:20

Изучаю 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); ?

В чем предназначение оператора & ?

Если можно ответе подробно , потому что это совсем незнакомый синтаксис.

Answer 1

Функция выполняет побитовую операцию. В процедуре проверяется нечетность. Все нечетные числа имеют младший бит 1, четные числа - 0. Выполняется AND двух числел. Например, 3 представляется как 11 в двоичном коде. 11 & 01 = 01, 1 это true, поэтому число нечетное.

READ ALSO
Помогите с задачей PHP + JS

Помогите с задачей PHP + JS

У меня есть PHP код в котором записывается данные из БД

166
Laravel ошибка Call to a member function first() on array

Laravel ошибка Call to a member function first() on array

Laravel выводит ошибку которая четко говорит что нельзя вызывать member функцию first() на массиве

163
Добавить массив в таблицу MySQL

Добавить массив в таблицу MySQL

Подскажите как добавить такой массив в таблицу MySQL:

170
Проблема с массивом (js и php)

Проблема с массивом (js и php)

Строю график таким вот способом:

132