Комментарии

Условные операторы
( 0 Голосов )

Для выполнения кода по заданному условию чаще всего применяются условные операторы if. Ниже приведен пример простейшей синтаксической формы условного оператора if.

if   ($а ==  $Ь) {

// выполнить эти операторы, если условие истинно $с = d; $е = $f; } else {
// иначе выполнить эти операторы $g = $h; $i = $j; }

Блок условного оператора else является необязательным. Для ввода дополнительных условий в последующих кодовых блоках служит условный оператор elseif, как показано в приведенном ниже примере.

if   ($а —  $Ь) {
$х = $у; // если условие истинно
elseif ($с == $d) {
$g = $h; // только если не истинно условие ($а == $Ь) и ($с равно $d) }

Блоков условного оператора elseif может быть сколько угодно. Следует, однако, предупредить, что для сравнения значений должны использоваться двойные (==), а не одинарные (=) знаки равенства. Последние служат для присваивания значений переменным и возврата присвоенного значения. Рассмотрим в качестве примера следующий фрагмент кода.

В этом фрагменте кода вместо одинарного знака равенства по ошибке указан двойной. Оператор, обозначаемый одинарным знаком равенства, выполняет две функции: во-первых, присваивает переменной $а значение переменной $Ь; а во-вторых, возвращает новое значение переменной $а. Таким образом, выражение $а = $Ь возвращает символьную строку ' cat', которая оценивается как логическое значение true. Поэтому условие оператора if оказывается истинным.

Одинарные знаки равенства можно использовать в условии оператора if в том случае, если результат выполнения метода присваивается переменной. Например, при вызове метода loadResult () из класса JDatabase возвращается конкретное значение или null, если результат запроса базы данных окажется пустым. Поэтому значение, возвращаемое методом loadResult (), может быть использовано в условии оператора if следующим образом:

if   ($link =  $db->loadResult())    {
// истинно, если по запросу возвращается ненулевой результат }

Рассмотрим этот пример кода более подробно, поскольку он сложнее предыдущих. В этом коде, по существу, выполняются три операции: во-первых, вызывается на выполнение метод loadResultO из класса JDatabase; во-вторых, возвращаемое значение присваивается переменной $link; и в-третьих, это значение служит условием для выполнения оператора if. Этот код можно было бы написать иначе, как показано ниже.

$link = $db->loadResult(); if ($link) {
// значение переменой $link истинно, если по запросу возвращается действительный результат }

Следует, однако, предупредить, что если по запросу возвращается нулевое значение как действительный результат, то рассматриваемый здесь код будет действовать совсем не так, как предполагалось. Дело в том, что нулевое значение оценивается в условии оператора if как ложное. Но выйти из этого затруднения позволяет приведенный ниже код.

$link = $db- >loadResult(); if ($link !== null) {
// ложно лишь в том случае, если по запросу возвращается пустой результат }

В некоторых случаях вместо простой формы условного оператора if удобно пользоваться тернарным оператором языка РНР, как показано в приведенном ниже примере.

$а =   ($Ь == $с)   ?  $d   :   $е;   //  если истинно,   возвращает  $d,   а иначе — $е

В этой строке кода переменной $а присваивается значение переменной $d, если условие истинно. В противном случае ей присваивается значение переменной $е.


Понравился материал? Пригодилась информация? Плюсани в социалки!


 
Похожие новости