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