Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Не равно. Все операции сравнения. Функция empty. Функция isset. Несколько условий сразу: or и and. Работа с логическими переменными




Не равно

Для того, чтобы спросить 'не равно', существует операторы! = и! ==. Первый игнорирует различие в типах, а второй - нет.

<? php

    $a = 0;

 

    /*

            Если переменная $a НЕ равна нулю, то выведи 'верно',

            иначе (если не равна нулю) выведи 'неверно'

    */

    if ($a! = 0) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Верно! ', так как $a равно 0

? >

<? php

    $a = 1;

 

    /*

            Если переменная $a НЕ равна нулю, то выведи 'верно',

            иначе (если не равна нулю) выведи 'неверно'

    */

    if ($a! = 0) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Неверно! ', так как $a равно 0

? >

<? php

    $a = '0';

 

    /*

            Если переменная $a НЕ равна нулю, то выведи 'верно',

            иначе (если не равна нулю) выведи 'неверно'

    */

    if ($a! = 0) echo 'Верно! '; else echo 'Неверно! ';

 

    /*

            Выведет 'Неверно! ', так как $a равно '0',

            а различие в типах игнорируется.

    */

? >

<? php

    $a = '0';

 

    /*

            Если переменная $a НЕ равна нулю, то выведи 'верно',

            иначе (если не равна нулю) выведи 'неверно'

    */

    if ($a! == 0) echo 'Верно! '; else echo 'Неверно! ';

 

    /*

            Выведет 'Верно! ', так как $a равно '0',

            а это не равно 0 при сравнении по типу.

    */

? >

Все операции сравнения

Возможные операции сравнения, которые можно использовать внутри if:

$a == $b $a равно $b
   
$a === $b $a равно $b и они одинаковы по типу
   
$a! = $b $a не равно $b
   
$a! == $b $a не равно $b или $a равно $b, но ни разные по типу
   
$a < $b $a меньше $b
   
$a > $b $a больше $b
   
$a < = $b $a меньше или равно $b
   
$a > = $b $a больше или равно $b
   

Функция empty

Зачастую в веб-программировании возникает следующая проблема: необходимо проверить переменную на пустоту.

Переменная будет пустая, если она равна нулю, '' (пустой строке), false или null (то есть не определена ранее).

Проверка на пустоту выполняется с помощью функции empty():

<? php

    $a = null;

    //Если $a пустое, то...

    if (empty($a)) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Верно! '

? >

<? php

    $a = 0;

    //Если $a пустое, то...

    if (empty($a)) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Верно! '

? >

<? php

    $a = '';

    //Если $a пустое, то...

    if (empty($a)) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Верно! '

? >

<? php

    $a = 'hi';

    //Если $a пустое, то...

    if (empty($a)) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Неверно! ', так как $a не пустая

? >

Чаще возникает обратная задача - проверка на то, что переменная является НЕ пустой. Отрицание НЕ можно сделать с помощью оператора '! ':

<? php

    $a = null;

    //Если $a Непустое, то...

    if (! empty($a)) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Неверно! ', так как $a пустое

? >

Функция isset

Аналогом empty является функция isset. Она проверяет существует ли переменная (то есть то, что она не равна null ). Смотрите примеры:

<? php

    $a = 'hello';

 

    //Если $a существует, то...

    if (isset($a)) echo 'Верно! '; else echo 'Неверно! ';

 

    /*

            Выведет 'Верно! ', так как $a существует.

    */

? >

<? php

    $a = 0;

 

    //Если $a существует, то...

    if (isset($a)) echo 'Верно! '; else echo 'Неверно! ';

 

    /*

            Выведет 'Верно! ', так как $a существует.

    */

? >

<? php

    /*

            Пусть переменную $a вообще не определяли выше в коде

            (это все равно, что присвоить ей null).

 

            Если $a существует, то...

    */

    if (isset($a)) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Неверно! '

? >

Аналогично проверятся на НЕ существование (через! isset ):

<? php

    $a = 3;

 

    //Если $a НЕ существует то...

    if (! isset($a)) echo 'Верно! '; else echo 'Неверно! ';

 

    /*

            Выведет 'Неверно! ', так как $a существует.

    */

? >

Несколько условий сразу: or и and

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

Для этого существуют операторы and (логическое И) и or (логическое ИЛИ).

<? php

    $a = 3;

    $b = - 3;

    //Если $a больше нуля и $b одновременно меньше нуля то...

    if ($a > 0 and $b < 0) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Верно! '

 

    $a = 3;

    //Если $a больше или равно 1 и меньше или равно 12 то...

    if ($a > = 1 and $a < = 12) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Верно! '

 

    $a = - 3;

    $b = - 3;

    /*

            Если $a больше нуля ИЛИ $b меньше нуля - хотя бы один из них, то...

            выведет 'Верно! ', так как хотя $a и не больше нуля,

            но одно из условий - $b < 0 - выполнится!

    */

    if ($a > 0 or $b < 0) echo 'Верно! '; else echo 'Неверно! ';

? >

Вместо and можно писать & &, а вместо or - ||.

Работа с логическими переменными

Многие функции PHP в результате своей работы возвращают либо true (истина), либо false (ложь). Эти значения довольно удобны при своей работе, но новичкам бывает довольно сложно понять их.

Представим себе, что переменная $a равна true. В таком случае конструкцию if можно записать так:

<? php

    $a = true;

 

    //Если $a равно true, то...

    if ($a == true) echo 'Верно! '; else echo 'Неверно! ';

 

    /*

            Выведет 'Верно! ', так как $a равно true.

    */

? >

Так как такие сравнения довольно распространены в PHP, то существует специальный прием, облегчающий работу (но не понимание, к сожалению).

Прием такой: конструкцию $a == true можно заменить на более простую: вместо if ($a == true) написать if ($a) и она будет работать аналогично.

Следует пользоваться второй конструкцией, так как она проще.

<? php

    /*

            Заменим $a == true на более простую:

            вместо if ($a == true) напишем if ($a):

    */

 

    $a = true;

    //Если $a равно true, то...

    if ($a) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Верно! ', так как $a равно true

 

    $a = true;

    //Если $a НЕ true (то есть false! ), то...

    if (! $a) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Неверно! ', так как $a равно true

? >

Также обратите внимание на следующие примеры:

<? php

    //Данное выражение всегда будет выводить 'Верно'

    if (true) echo 'Верно! '; else echo 'Неверно! ';

 

    //Данное выражение всегда будет выводить 'Неверно'

    if (false) echo 'Верно! '; else echo 'Неверно! ';

 

    //Данное выражение всегда будет выводить 'Неверно'

    if (! true) echo 'Верно! '; else echo 'Неверно! ';

 

    //Данное выражение всегда будет выводить 'Верно'

    if (! false) echo 'Верно! '; else echo 'Неверно! ';

? >

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...