Оператор еквівалентності php

Відео: Вивчаємо PHP | Урок №11 - Умовні оператори

Оператор еквівалентності PHP

Відео: Вивчаємо PHP | Урок №10 - Оператор еквівалентності

Досить часто з`являється така проблема в PHP, рішенням якої є використання оператора еквівалентності. Справа в тому що PHP любить перетворювати типи, і, з одного боку, це добре. Наприклад, при додаванні числа і рядки, рядок перетвориться в число і складається. В результаті, все добре. Але бувають випадки, коли таке перетворення плачевно. Приклад? Читайте далі.

Припустимо, у Вас є дві змінні:

Відео: DangerPro - Оператор еквівалентності PHP

lt ;?php
$ var_1
=0-
$ var_2
=""-
if($ var_1 == $ var_2) echo "Змінні рівні"-
?gt;



Як Ви і здогадалися, PHP нам виведе, що змінні рівні. але хіба 0 дорівнює порожній рядку? Зрозуміло, немає. А чому так сталося? Все досить просто: 0 для PHP - це false (Інші числа - це true), А порожня стрічка - це теж false (Якщо вона не порожня, то PHP вважає її true). У підсумку, у нас обидва операнда стали false, і, очевидно, що вони рівні. Тобто в даному прикладі ми явно бачимо, що перетворення спрацювало невірно. І повірте моєму досвіду, даних засадних місць зустрічається дуже багато.




Тепер постає питання: "Як боротися з цим?". Як Ви здогадалися з назви статті, за допомогою оператора еквівалентності PHP, який позначається так "===". Даний оператор звіряє не тільки значення (як робить оператор порівняння, використовуваний нами вище), але і типи. Тобто щоб перевірка еквівалентності видала true необхідно збіг не тільки значень, а й типів. Давайте перевіримо це:

lt ;?php
$ var_1
=0-
$ var_2
=""-
if($ var_1 === $ var_2) echo "Змінні рівні"-
else echo "Змінні нерівні"-
?gt;

Результатом виконання скрипта буде висновок рядки: "Змінні нерівні", Чого ми з Вами і домагалися. Тобто значення змінних рівні, але їх типи не збігаються (одна змінна integer, а інша string), Тому оператор еквівалентності повернув false і відправив нас в блок else, де ми і вивели відповідний рядок.

Відео: Основи PHP - урок 2. Операції порівняння, логічні операції, розгалуження

Зрозуміло, у Вас попереду буде ще багато помилок, пов`язаних з перетворенням типів, так як подібних нюансів дійсно дуже багато, але з часом Ви навчитеся використовувати оператор еквівалентності, і помилок безумовно стане менше.

Поділися в соціальних мережах:

Схожі
Умовний оператор в phpУмовний оператор в php
Цикли в phpЦикли в php
Умовний оператор в jаvascriptУмовний оператор в jаvascript
Вивчаємо coffeescript. Типи даних.Вивчаємо coffeescript. Типи даних.
Оператор придушення помилок в phpОператор придушення помилок в php
Змінні в cssЗмінні в css
Перетворення типів в jаvascript.Перетворення типів в jаvascript.
Довідкові змінні phpДовідкові змінні php
Оператор between в sql.Оператор between в sql.
Строкові функції в phpСтрокові функції в php
» » Оператор еквівалентності php