PHP or
работает как C ||
(что, кстати, также поддерживается PHP - or
просто выглядит лучше и имеет другой оператор приоритет - см. эту страницу ).
Он известен как оператор короткого замыкания , потому что он пропустит любые оценки, когда у него будет достаточно информации для определения окончательного значения.
В вашем примере, если mysql_connect()
вернет TRUE, тогда PHP уже знает, что весь оператор будет иметь значение TRUE, независимо от того, к чему die()
переходит, и, следовательно, die()
не оценивается.
Если mysql_connect()
возвращает FALSE, PHP не знает, будет ли весь оператор иметь значение TRUE или FALSE, поэтому он продолжает работу и пытается вычислить die()
- завершение сценария в процессе.
Это просто хороший трюк, использующий преимущества работы or
.