Головна » Файли » PHP » PHP

Оператор отношения в PHP Равенство
25.05.2012, 17:20

С оператором равенства == (двойным знаком равенства) мы уже не раз встречались . Ero не следует путать с оператором присваивания = (одинарным знаком равенства). В примере  первый оператор присваивает значение, а второй проверяет его на равенство.

?php

$month = "Март";

if ($month == "Март") echo "Весна наступила";

?>

Как видно из примера, возвращая значение TRUE или FAL5E, оператор сравнения позволяет проверять условия, используя инструкцию if. Но это еще не все, поскольку PHP является языком со слабой типизацией. Если два операнда выражения равенства имеют разные типы, PHP преобразует их к тому типу, который имеет для него наибольший смысл. К примеру, любые строки, составленные полностью из цифр, при сравнении с числами будут преобразованы в числа. В примере ниже, переменные $a и $b являются двумя разными строками, и поэтому вряд ли стоило ожидать, что какая-то из инструкций if выведет результат. 

?php

$a = "1000";

$b = "+1000";

if ($a == $b) echo "1";

if ($a === $b) echo "2";

?>

Но если запустить этот пример, вы увидите, что он выведет число, а это означает, что результат вычисления первой инструкции if является TRUE. Причина в том, что обе строки сначала конвертируются в числа, и 1000 имеет такое же числовое значение, что и +1000. В отличие от первой, во второй инструкции if используется оператор тождественности  тройной знак равенства, который удерживает PHP от автоматического преобразования типов. Поэтому переменные $a и $b сравниваются как строки и теперь считаются отличающимися друг от друга, в этом случае на экран ничего не выводится. Как и в случае с принудительным заданием уровня приоритетности операторов, если возникнут сомнения в том, будет ли PHP конвертировать типы операндов, для отмены такого поведения интерпретатора можно воспользоваться оператором тождественности. Аналогично использованию оператора равенства для определения равенства операндов можно проверить их на неравенство, используя оператор неравенства 

! =. 

Пример ниже является измененным , в котором операторы равенства и тождественности были заменены противоположными им операторами. 

?php

$a = "1000";

$b = (+1000";

if ($a != $b) echo "1";

if ($a !==$b) echo "2";

?>

Как, наверное, и ожидалось, первая инструкция if не выводит на экран число 1, потому что в коде ставится вопрос о неравенстве числовых значений переменных $a и $b. Вместо этого будет выведено число 2, поскольку вторая инструкция if ставит вопрос о нетождественности прежнего типа операндов переменных $a и $b, и ответом будет TRUE, потому что они не тождественны. 

Категорія: PHP | Додав: [UA]Admin
Переглядів: 3027 | Завантажень: 0 | Коментарі: 3
Всього коментарів: 0
Додавати коментарі можуть лише зареєстровані користувачі.
[ Реєстрація | Вхід ]

В які ігри ви полюбляєте грати?
Всего ответов: 29
Реклама на сайті Чорнобай - 063-878-77-71 Ковка Киев
Найближчі населені пункти до селища міського типу    Чорнобай: Ви власник цих сайтів, пропоную співпрацю! м. Золотоноша20 км
смт. Оржиця29 км
м. Черкаси32 км
смт. Драбів34 км
смт. Новооржицьке48 км
м. Гребінка50 км
с. Великі Липняги56 км
м. Сміла59 км
м. Лубни61 км
П`ятниця
19.04.2024
06:15

[ Управління профілем ]
Онлайн радио

OnLine
Онлайн всього: 1
Гостей: 1
Користувачів: 0

Користувачів онлайн:
На сайті Чорнобай були:

Ремонт компютерів настройка та устаноака систем, програм та антивірусів, створення рефератів, дипломних, курсових, робіт.Банери та дизайн. Створення сайтів Черкаси - Чорнобай тел. - 063 - 878 - 77 - 71 - 096 - 180 - 12 - 12