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";


 

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

21262. Особливості обліку на сільськогосподарських підприємствах 213 KB
  У цих умовах особливого значення набуває облік за допомогою якого забезпечується збереження сільськогосподарської власності і продукції правильне використання насінь кормів пального машин дотримання госпрозрахунку і підвищення рентабельності господарства. Виробництво продукції сільського господарства має тільки свої йому властиві особливості обліку. Це дозволяє точно обчислити собівартість продукції зерна кормів та іншої продукції сільського господарства. Тому фактичну собівартість продукції рослинництва обчислюють не щомісяця а лише...
21263. АУДИТ АКТИВІВ, ПАСИВІВ ТА ФІНАНСОВОЇ ЗВІТНОСТІ 213 KB
  АУДИТ СТАНУ БУХГАЛТЕРСЬКОГО ОБЛІКУ Й ФІНАНСОВОЇ ЗВІТНОСТІ 5. Таки комплекси виділяють відповідно до Плану рахунків бухгалтерського обліку тобто девять розділів та позабалансові рахунки; окремо бажано виділити Розрахунки з оплати праці. Запаси Аналітичний облік руху матеріальних цінностей на складах підприємства Документи по списанню матеріальних цінностей на витрати виробництва Документи по списанню нестач втрат та розкрадань матеріальних цінностей Облік МБП у запасі та експлуатації Зведений облік матеріальних цінностей Матеріали...
21264. АУДИТОРСЬКИЙ ВИСНОВОК ТА ІНШІ ПІДСУМКОВІ ДОКУМЕНТИ 55.5 KB
  Аудиторський висновок про бухгалтерську звітність економічного субєкта містить думку аудиторської фірми про достовірність цієї звітності яке має висловлювати оцінку аудиторської фірми відповідності у всіх суттєвих аспектах бухгалтерської звітності Закону України Про бухгалтерський облік та фінансову звітність в Україні Аудиторський висновок це лаконічний опис виявлених порушень помилок відхилень з оцінкою стану бухгалтерського обліку достовірності звітності та законності господарських операцій. Згідно з Законом України Про...
21265. Транспортная задача. Этапы построения решения транспортной задачи 474.5 KB
  Транспортная задача Т3возникает при планировании рациональных перевозок грузов загрузки оборудования и других организационноэкономических процессов. Требуется составить такой план перевозок откуда куда и сколько единиц груза везти чтобы все заявки были выполнены а общая стоимость всех перевозок минимальна. Матрицу X будем называть матрицей перевозок или планом грузоперевозок. Суммарное количество груза доставляемого в каждый ПН из всех ПО должно быть равно заявке поданной данным пунктом: 3...
21266. Понятие математической модели 342.5 KB
  И если ранее математический аппарат преимущественно использовался как инструмент расчета то сейчас экономика выдвигает другие задачи: рационального использования уже имеющегося сырья оборудования кадровых энергетических и прочих ресурсов; выбора наиболее выгодного варианта организации производственного процесса оптимальным образом. Эти задачи привели к появлению новых математических методов и направлений прикладной математики: теории игр теории массового обслуживания теории линейного и нелинейного программирования и др. Поэтому в...
21267. Аналіз рентабельності діяльності підприємства з метою її підвищення 574.5 KB
  Збільшення обсягу реалізації і поліпшення якості продукції 3. Резерви зниження собівартості продукції 3. Уособлення частини вартості продукції у вигляді витрат виступає в грошовому виразі як собівартість продукції. На формування прибутку як фінансового показника роботи підприємства впливає встановлений державою порядок формування витрат на виробництво продукції робіт послуг; обчислення й калькулювання собівартості продукції робіт послуг; визначення позареалізаційних прибутків і витрат; визначення балансового валового прибутку.
21268. Захист населення і територій від надзвичайних ситуацій 302 KB
  Актуальність проблеми забезпечення природнотехногенної безпеки населення і територій зумовлена тенденціями зростання втрат людей і шкоди територіям що спричиняються небезпечними природними явищами промисловими аваріями і катастрофами. Захист населення і територій від надзвичайних ситуацій техногенного та природного характеру це система організаційних технічних медикобіологічних фінансовоекономічних та інших заходів для запобігання та реагування на надзвичайні ситуації техногенного та природного характеру і ліквідації їх наслідків що...
21269. Сложные зубчатые механизмы. Кинематическое исследование зубчатых и планетарных механизмов 180.5 KB
  ложными зубчатыми механизмами называются механизмы с зубчатыми передачами с числом зубчатых колес больше двух. Это могут быть механизмы с оригинальными структурными схемами или механизмы, образованные последовательным...
21270. ЛІКВІДАЦІЯ НАСЛІДКІВ НАДЗВИЧАЙНИХ СИТУАЦІЙ 146 KB
  РІНР і в мирний і у воєнний час проводяться: для порятунку людей надання першої медичної допомоги постраждалим і ураженим та евакуації їх у лікувальні установи; локалізації аварій і усунення ушкоджень які заважають проведенню рятувальних робіт; локалізації аварій які загрожують життю людей на АЕС хімічно небезпечних обєктах енергетичних і комунальних мережах нафтоі газопроводах та інших обєктах і мережах; забезпечення життєдіяльності міст і обєктів господарювання; створення необхідних умов проведення відбудовних робіт. До...