Точка с запятой после закрытия фигурной скобки в PHP

Я пишу сценарий, чтобы сделать куски текста и отправить его с помощью SMS. Раньше сегодня я просматривал некоторый код, чтобы разделить строку на куски, и я увидел то, что я никогда раньше не видел. Я говорю о ";" сразу после «}» в en фрагмента.

Почему эта двоеточие? Я знаю, что это работает, но я не знаю, добавляет ли он некоторую семантику или какую-то инструкцию к интерпретатору, кто-нибудь знает, для чего это?

while(1) { $length = (strlen($output)+strlen($words[$i])); if($length>$new_max) { if(count($words) > 0) { $out_array[] = $output; $output = ''; } else { break; } } else { $output = $output." ".$words[$i]; ++$i; }; }; 

EDIT: Понятно, что точки с запятой, а также несколько точек с запятой вместе не влияют на результат, но знаете ли вы, имеет ли он какое-то влияние на интерпретатора? он выполняет какую-то задачу (внутренне), когда анализирует ее?

Я думаю, что эти две точки с запятой здесь ничего не делают. Вероятно, это интерпретируется как пустое выражение сразу после if / while .

Это не нужно. Они не повредили сценарий, просто лишний. У программиста, вероятно, была привычка добавлять точки с запятой к концу каждого утверждения. Возможно, он получил эту привычку с другого языка программирования, возможно, его IDE показывал ошибки без запятой или, может быть, он просто новичок. В любом случае, нет ни боли, ни помощи. Также тот факт, что программист использует while (1), говорит мне, что он либо очень ленив, потому что обычно программист записывает while (true), единственная причина для ввода в то время как 1 – это потому, что он меньше печатает. Программист с любым формальным обучением не будет писать в то время как (1), а не while (true). Это только мое мнение, но оно основано на более чем 10-летнем программировании на трех языках.

В некоторых случаях вам нужно иметь точку с запятой после закрывающей фигурной скобки!

Пример:

 if(1==1): if(true){ echo "it's true"; } //no semicolon here => syntax error! else: echo "no never ever"; endif; 

Конечно, вы бы использовали альтернативный синтаксис для структур управления, если есть только PHP-код.

Но если у вас есть сочетание кода HTML и PHP, вы можете использовать альтернативный синтаксис для структур управления (альтернативный синтаксис делает код более понятным и понятным), но проблема в том, что в некоторых случаях плагин или, например, тег синтаксический анализатор cms может создать оператор if с фигурными скобками (без «закрывающей точки с запятой») непосредственно перед «else:», и это приведет к синтаксической ошибке в полученном php-файле.

Вышеприведенный код будет работать следующим образом:

 if(1==1): if(true){ echo "it's true"; }; else: echo "no never ever"; endif; 

Некоторые люди используют // endwhile или // endif, чтобы сигнализировать, откуда он пришел. Другие кладут полуколоны после брекетов. Оба метода безвредны и просто сводятся к разработчику.

Я бы рискнул предположить, что этот программист не доверяет своему собственному кодированию, также кодирует в текстовом режиме без стиля – позиции скобки, несогласованный интервал и время (1) просто … рекомендуют не делая это.