|
|
|
|
<?php
if ( $value == 1 )
{
echo 1;
}
?>
|
Предыдущий код ни чего не возвращает, а если после постаить точку с запятой , то напечатается единица. Почему так? И вообще, почему код работает с ;? | |
|
|
|
|
|
|
|
для: Dino
(04.10.2008 в 17:00)
| | Все правильно. Если $value не равно 1, то условие не срабатывает. Ничто не запрещает вам создавать оператор if() без тела, следующая запись вполне допустима:
<?php
if ( $value == 1 );
?>
|
Ни что также не запрещает вам создавать составной оператор - один или более операторов, заключенных в фигурные скобки - для этого не обязательны операторы цикла и ветвления. Следующая запись вполне допустима:
Таким образом, ставя точку с запятой, вы получаете два оператора, которые действуют независимо друг от друга. if() - сравнивает и по результату сравения ничего не делает, а echo в фигурных скобках каждый раз выводит единицу в окно браузера. | |
|
|
|
|
|
|
|
для: Dino
(04.10.2008 в 17:00)
| | А что тут странного? Точка с запятой заканчивает блок. По другому это можно написать так
<?php
if ( $value == 1 )
{
}
{
echo 1;
}
?>
| В блоке с условием ничего не выполняется, а в следующем выполняется. Если ; нет, то при $value == 1 (а она естественно не равна, так как null) блок выполняться не будет. | |
|
|
|
|
|
|
|
для: Николай2357
(04.10.2008 в 17:13)
| | точка-c-запятой никакой блок не заканчивает.
точка-с-запятой заканчивает оператор вычисления выражения (который в частном случае может быть пустым.) | |
|
|
|
|
|
|
|
для: Trianon
(04.10.2008 в 17:17)
| | Автор, судя по вопросу, может и не знать, что оператор вычисления, если он один, не обязательно заключать в фигурные скобки. Абстрактно можно представить это как блок, состоящий из одного оператора. Что я и хотел для наглядности продемонстрировать, заключив в фигурные скобки пустоту.
По правде говоря, я не стал бы отвечать вторым, первый ответ более исчерпывающий, но получилось "синхронное плавание"... | |
|
|
|
|
|
|
|
для: Николай2357
(04.10.2008 в 19:24)
| | >Автор, судя по вопросу, может и не знать, что оператор вычисления, если он один, не обязательно заключать в фигурные скобки.
Любой оператор необязательно заключать в фигурные скобки.
>Абстрактно можно представить это как блок, состоящий из одного оператора.
Нельзя. Блок это вообще не из этой оперы. Последовательность операторов, объединенных фигурными скобками корректно называется составным оператором. А вовсе не блоком.
>Что я и хотел для наглядности продемонстрировать, заключив в фигурные скобки пустоту.
Я не заметил здесь наглядности. | |
|
|
|
|
|
|
|
для: Trianon
(04.10.2008 в 19:44)
| | >Любой оператор необязательно заключать в фигурные скобки.
В данном случае речь шла именно об этом операторе.
>Нельзя.
Почему? Абстрактно можно все представить, даже электричество в виде водопровода.
>Последовательность операторов, объединенных фигурными скобками корректно называется составным оператором. А вовсе не блоком.
Весьма вероятно, однако во многих мануалах это называют именно так. Впрочем, суть от этого не меняется.
>Я не заметил здесь наглядности.
И здесь не стану спорить. С Вашей рациональностью это совсем не наглядный пример, как раз наоборот. А вот новичку, такому как я к примеру, гараздо наглядней, когда за выражением идут фигурные скобки. | |
|
|
|
|
|
|
|
для: Николай2357
(04.10.2008 в 19:52)
| | Спасибо вам всем. Теперь разобрался. | |
|
|
|