Требуются условные обозначения PHP, скобки?

Я просто просматривал форум, а кто-то спрашивал о файле PHP, который они нашли в Интернете. В коде есть несколько таких мест:

if ($REMOTE_ADDR == "") $ip = "no ip"; else $ip = getHostByAddr($REMOTE_ADDR);

Я всегда думал, что скобки необходимы, чтобы заключить, что вы хотите сделать, если условие истинно. Есть ли другая альтернатива, например, если она находится на той же линии, что и вы?

Существует и другая строка: if ($action != ""): mail("$adminaddress","Visitor Comment from YOUR SITE",

Мой инстинкт – сказать, что это не сработает, но я также не знаю, устарел ли он файл PHP, и он работал?

    вы можете сделать, если еще такие утверждения:

     <?php if ($something) { echo 'one conditional line of code'; echo 'another conditional line of code'; } if ($something) echo 'one conditional line of code'; if ($something) echo 'one conditional line of code'; echo 'a NON-conditional line of code'; // this line gets executed regardless of the value of $something ?> 

    и тогда вы также можете записать if – else в альтернативном синтаксисе:

     <?php if ($something): echo 'one conditional line of code'; echo 'another conditional line of code'; elseif ($somethingElse): echo 'one conditional line of code'; echo 'another conditional line of code'; else: echo 'one conditional line of code'; echo 'another conditional line of code'; endif; ?> 

    с альтернативным синтаксисом вы также можете отказаться от режима синтаксического анализа следующим образом:

     <?php if ($something): ?> one conditional line of code<br /> another conditional line of code <?php else: echo "it's value was: $value<br />\n"; ?> another conditional line of code <?php endif; ?> 

    Но это становится очень грязным очень быстро, и я не буду рекомендовать его использовать (кроме, возможно, для шаблона-логики).

    и сделать это:

     <?php $result = $something ? 'something was true' : 'something was false'; echo $result; ?> equals <?php if ($something) { $result = 'something was true'; } else { $result = 'something was false'; } echo $result; ?> 

    Чтобы перейти к более подробному описанию, причина, по которой фигурные скобки необязательны, заключается в том, что синтаксис выглядит следующим образом:

     if(CONDITION) BLOCK [elseif(CONDITION) BLOCK] [else BLOCK] 

    БЛОК может быть единственным заявлением:

     foo(); 

    или это может быть группа заявлений, заключенная в скобки:

     { foo(); bar(); } 

    по моему мнению

     if ($REMOTE_ADDR == "") $ip = "no ip"; else $ip = getHostByAddr($REMOTE_ADDR); 

    действительно, но гораздо труднее читать, чем:

     if ($REMOTE_ADDR == "") { $ip = "no ip"; } else { $ip = getHostByAddr($REMOTE_ADDR); } 

    Скобки (а не скобки) являются необязательными в PHP, как и в большинстве синтаксисов типа C. Может быть, вы думаете о Perl; они требуются там для этой формы синтаксиса.

    Двоеточие – это альтернативная форма структуры управления, поддерживаемая PHP. Я ненавижу это, но некоторые люди (особенно дизайнеры систем шаблонов, по-видимому) любят это.

    Да, исключая брекеты, разрешено, хотя много раз я слышал 2 причины не использовать этот синтаксис:

    1. Труднее читать. Менее очевидно для другого программиста.
    2. Если вы когда-нибудь захотите добавить что-то внутри if, тогда вам нужно добавить фигурные скобки, которые сложнее после этого, когда вы начинаете кодирование, поскольку большинство редакторов добавит вам закрывающую фигуру.

    Кроме того, да, синтаксис двоеточия действителен. Альтернативы можно найти здесь: http://php.net/manual/en/control-structures.alternative-syntax.php

     brackets are needed to enclose what you want to do if the condition is true 

    Я не могу придумать какой-либо язык, требующий этого