69688

ОПЕРАТОР ЕКВІВАЛЕНТНОСТІ (===)

Лекция

Информатика, кибернетика и программирование

Іноді звичайний оператор порівняння == працює не зовсім коректно, точніше не так, як нам хочеться, в деяких ситуаціях навіть виходять міні-анекдоти. Розглянемо наступний приклад...

Украинкский

2014-10-08

28 KB

0 чел.

Тема 7: ОПЕРАТОР ЕКВІВАЛЕНТНОСТІ (===)

Іноді звичайний оператор порівняння == працює не зовсім коректно, точніше не так, як нам хочеться, в деяких ситуаціях навіть виходять міні-анекдоти. Розглянемо наступний приклад:

<?

$х   = 0;    //   число,   рівне   0

$s   = "";    //пустий   рядок

echo gettype($x)."\n";

echo gettype($s)."\n";
if    ($x==$s)    echo   "x   =s";
?>

Змінні $х і $s не можуть бути рівні навіть з логічної точки зору, програма спочатку виводить повідомлення про те, що змінна $х є цілим числом (integer), а змінна $s — рядком (string). A після цього програма повідомляє, що змінні рівні. Вся справа тому, що PHP трактує одну із змінних (яку саме — не знаю, оскільки і 0, і " " — це false, цілком може бути, що інтерпретатор вважає логічним обидві змінні), як логічну змінну, а якщо хоч би одна змінна логічна, то друга теж вважається логічною. Тому ми отримуємо false==false, отже, програма виведе рядок "x=s".

Щоб уникнути подібної ситуації, потрібно використовувати оператора еквівалентності = = =. Якщо модифікувати нашу програму так:

<?

$х   =   0;

//   число,   рівне   0

$s   =   "";   

//пустая   рядок

echo   gettype($x)."\n";

echo   gettype($s)."\n";

if    ($x===$s)    echo   "x   =s";

?>

то зараз рядок "x=s" виведена не буде. Проведемо ще один експеримент; з використанням масивів. Розумію, що про масиви в PHP ви ще нічого не знаєте, але зараз просто необхідно забігти небагато наперед.

<?

$A  =   array('l'=>'0001');   

//   використовуються   апострофи,   а не   лапки

$В   =   array('2'=>'0010');

if   ($А  ==   $B)   echo   "A=   -В".;

if    ($А   ===   $B)    echo   "A=   =   =B";

?>

Буде виведений перший рядок, але не друга. У версіях PHP 4.0.x і нижче масиви $А і $в перетворювалися в рядки "array", які і порівнювалися. Ось через це оператор == неправильно працював. Оператор === із самого початку позбавлений цього недоліку. Зараз у мене встановлена версія 4.1.2 (не найновіша), але в ній оператор == працює коректно.

Для оператора === повинен бути зворотний оператор !===, але його немає. Якщо ви напишете:

if    ($А   !===   $B)    echo   "A<>B";

ви отримаєте повідомлення про помилку. Але можна обійти цю незручність так:

if    (!($А   ===   $B))    echo   "A<>B";


 

А также другие работы, которые могут Вас заинтересовать

31236. Анализ условий образования и обращения с твердыми отходами потребления на территории г. Ростова – на – Дону 525.5 KB
  Анализ условий образования и структура твердых отходов потребления. Анализ организации сбора твердых отходов потребления на территории г. Сбор отходов в контейнеры малой емкости. Сбор отходов с использованием мусоропроводо.
31237. Налогообложение малых предприятий: проблемы и пути совершенствования (на примере предприятия ИП Гусевой Н.В.) 1.53 MB
  По мнению специалистов ФНС России эта цифра выше. Особенно если в них принимают участие специалистыпрактики выполнившие множество проектов в сфере МСФО. Для комфортной работы стол должен удовлетворять следующим условиям: – высота стола должна быть выбрана с учетом возможности сидеть свободно в удобной позе при необходимости опираясь на подлокотники; – нижняя часть стола должна быть сконструирована так чтобы бухгалтер мог удобно сидеть не был вынужден поджимать ноги; – поверхность стола должна обладать свойствами исключающими...
31238. Электронная таблица Excel. Современные возможности и достоинства приложения 1.46 MB
  Назначение данного курса – научить читателей эффективно использовать средства программы Microsoft Excel и понимать суть производимых приложением операций. Рассказать обо всех функциях и возможностях этой программы – не было главной целью проекта, а хотелось продемонстрировать, как применять Excel для достижения успеха в учебной и профессиональной деятельности.
31239. Технология приготовления блюда «Рыбные рулетики». Технология приготовления бисквитного торта «Кудрявый мальчик» 3.66 MB
  Технология приготовления блюда Рыбные рулетики. Технология приготовления бисквитного торта Кудрявый мальчик. Технология приготовления блюда Рыбные рулетики. Технология приготовления бисквитного торта Кудрявый мальчик.
31240. «Менеджмент организации» Методические рекомендации 650.5 KB
  Квалификационная работа по специальности Менеджмент организации: Методические рекомендации по выполнению квалификационной работы.Выполнение квалификационной работы. Цели и задачи дипломной работы. Выбор темы дипломной работы проекта и его утверждение.
31241. СОВЕРШЕНСТВОВАНИЕ МАРКЕТИНГОВОЙ ПОЛИТИКИ КАК ФАКТОР ПОВЫШЕНИЯ ЭФФЕКТИВНОСТИ ДЕЯТЕЛЬНОСТИ ПРЕДПРИЯТИЯ (НА ПРИМЕРЕ МУП «ЭЛЕКТРОТРАНС» Г. ЧЕРЕПОВЦА) 693 KB
  Теоретической и методологической основой дипломной работы являются подходы к решению задач исследования маркетинга предприятия используемый набор инструментов приемов и методов предлагаемый отечественными и зарубежными авторами. Проведенные маркетинговые исследования позволяют понять каким образом компания должна организовать сбыт своей продукции как надо проводить кампанию по продвижению на рынки новых изделий строить стратегию рекламы; определить какие виды продукции проданные какому потребителю и в каком регионе принесут...
31242. ВАЗ-2110. Техническая характеристика двигателя ВАЗ-2110 и его эксплуатационная характеристика 867.5 KB
  Компоновка двигателя отличается простотой и удобством обслуживания. Все узлы двигателя требующие регулировки или ухода установлены в легкодоступных местах. центры придерживались хотя бы данному принципу проектирования участка текущего ремонта по двигателям ВАЗ2110 то эффективность ремонта двигателя ВАЗ2110 значительно возросла. Отделение текущего ремонта двигателя автомобилей ВАЗ2110 является основной ее частью так как за время эксплуатации и использования некачественных горючесмазочных материалов возникает некорректная работа двигателя.
31243. Разработка фирменного стиля ювелирного салона «Линда» 390.5 KB
  Фирменный стиль – это и средство формирования имиджа компании, а также определенный носитель информации. Компоненты фирменного стиля помогают потребителю отличить Вашу продукцию от других. Соблюдение фирменного стиля фирмой, очень положительно влияет на фактор доверия к этой фирме, так как считается, что в фирме присутствует образцовый порядок как в производстве, так и в любой другой деятельности.
31244. Искусство ассамбляжа 459.5 KB
  Задачи: изучить основные тенденции современного искусства; сопоставить время создания нового направления и технику известных деятелей ассамбляжа; постигнуть идеологические побуждения каждого автора на создание работ; определить последствия для развития современного искусства в связи с изобретением новой техники а впоследствии и направления в искусстве. В результате исследования данного направления современного искусства были созданы несколько изобразительных работ в рамках правил поставленной темы.assemblage – техника визуального искусства...