Чудесно! Ты начинаешь понимать... Давай дальше.
https://www.php.net/manual/en/language.operators.bitwise.phpBitwise operators allow evaluation and manipulation of specific bits within an integer.
Там явно написано: работает сей оператор с типом INT! И на входе, и на выходе.
Ты присвоил чуть выше boolean, но отдал оператору, который на входе ожидает int.
Тебя почему-то не удивляет, что при работе оператора присваивания ( = ) переменной должен ввалиться тип, а при работе другого оператора ( & ) - почему-то не должен. Где логика? :)