Эти операции предназначены исключительно для работы с логическими выражениями и также возвращают false или true.
r ! a — истина, если a ложно, и наоборот.
r a && b — истина, если истинны и a, и b.
r a || b — истина, если истинны или a, или b, или они оба.
Следует заметить, что вычисление логических выражений, содержащих такие операции, идет всегда слева направо, при этом, если результат уже очевиден (например, false&&что-то всегда дает false), то вычисления обрываются, даже если в выражении присутствуют вызовы функций. Например, в операторе
$logic = 0&&(time()>100);
стандартная функция time() никогда не будет вызвана.
Будьте осторожны с логическими операциями — не забывайте про удваивание символа. Обратите внимание, что, например, | и || — два совершенно разных оператора, один из которых может потенциально возвращать любое число, а второй — только false и true.