Один & является побитовое и операции, он смотрит на двух выражений на каждой стороне, ломает их вплоть до уровня бит, и выполняет операцию на каждом бите. Это не очень много программистов, которые используют или нуждаются очень часто.
Вместо этого используйте оператор & &. Это более традиционный логический и. То же самое относится к другому оператору. Использовать || для или, не |, == для сравнения not = (который является присвоением).
Список всех операторов PHP, смотрите здесь: php operators
Кроме того, хотя это имеет смысл для нас, чтобы сказать «а и Ь равны 1», то компилятор не поймет «в & & b == 1 ". Это проверит, является ли «а» истинным сам по себе, а затем, если b == 1. «a» является истинным, сам по себе звучит странно, но представьте, что a было либо значением true, либо false, и это будет иметь больше смысла. Вместо этого вам нужно написать (a == 1 & & b == 1). Если вы проверяете ли $ video_id является 1, так как в противном случае это может быть 0, и вам не придется беспокоиться о других чисел, как 4 или 17 или что-то, вы можете написать следующее:
if ($video_id && $adopted_id):
Это может выглядите странно, но то, что вы проверяете, когда у вас нет знака ==, является то, что они не являются «0». Этот оператор будет ложным, если любая переменная равна 0.
Поскольку нет других операторов, это также случай, когда вы можете использовать ключевое слово 'и' вместо' && ', что может предотвратить перебои между побитово и логично. – MrLore