array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'control-structures.else.php', 1 => 'else', ), 'up' => array ( 0 => 'language.control-structures.php', 1 => 'Управляющие конструкции', ), 'prev' => array ( 0 => 'control-structures.if.php', 1 => 'if', ), 'next' => array ( 0 => 'control-structures.elseif.php', 1 => 'elseif/else if', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'language/control-structures/else.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
Часто необходимо выполнить одну инструкцию, если конкретное условие
верно, и другую — если неверно. Вот для чего
нужна конструкция else
. Конструкция else
расширяет инструкцию if
, чтобы выполнять другую инструкцию
тогда, когда выражение внутри инструкции if
PHP оценивает как false
. Например, следующий код выведет
«a больше b»,
если значение переменной $a больше, чем
значение переменной $b,
иначе — «a НЕ больше b»:
<?php
if ($a > $b) {
echo "a больше b";
} else {
echo "a НЕ больше b";
}
?>
else
, только если
вычислит выражение if
как false
,
а если были выражения elseif
— то только если тоже вычислит их как false
. О конструкции elseif.
Замечание: Болтающийся else
В случае вложенных инструкций
if
-else
, конструкцияelse
связывается с близлежащей конструкциейif
.Независимо от расстановки отступов, которые не влияют на PHP-код, конструкция<?php
$a = false;
$b = true;
if ($a)
if ($b)
echo "b";
else
echo "c";
?>else
связана с конструкциейif ($b)
, поэтому пример ничего не выведет. Код с такой расстановкой отступов будет работать, но лучше избегать такого кода и использовать фигурные скобки, чтобы устранить неоднозначности.