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