Бывает, что при написании кода PHP я случайно помещаю точку с запятой ;
сразу после утверждения if. Например:
if($a > 1); { .... }
Я думал, что PHP в этом случае должен вызвать ошибку, но это не так. Такой синтаксис должен иметь смысл, мне просто интересно, что это такое.
Для того, что я мог видеть, условие, похоже, всегда верно, когда ;
, но я не уверен, что это значение.
Сингл ;
может быть прочитано как «пустой оператор» и
if($a > 1); { .... }
эквивалентно
if($a > 1) ; // execute an empty statement if $a > 1 // then execute the following block of code. { .... }
Для того, что я мог видеть, условие, похоже, всегда верно, когда
;
добавлен
Это похоже только на то, что блок выполняется независимо от if-statement.
Добавление полуколонии по сути заканчивает блок if перед фигурными скобками. Это неправда, просто вы ничего не делаете в if.
Подумайте об этом так, если у вас нет брекетов:
if($a>1) echo "Yes"; echo "No";
делает все до первой полуколонии внутри if. Так что в вашем случае ничего не происходит перед первой точкой с запятой, так что ничего не происходит.