Оператор еквівалентності php
Відео: Вивчаємо PHP | Урок №11 - Умовні оператори
Відео: Вивчаємо 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. Операції порівняння, логічні операції, розгалуження
Зрозуміло, у Вас попереду буде ще багато помилок, пов`язаних з перетворенням типів, так як подібних нюансів дійсно дуже багато, але з часом Ви навчитеся використовувати оператор еквівалентності, і помилок безумовно стане менше.
- Switch case в jаvascript
- Вивчаємо coffeescript. Оператори.
- Строкові функції в php
- Створення функцій в php
- Константи в php
- Змінні в css
- Типи змінних в jаvascript
- Оператор in в sql.
- Перевірка форми в jаvascript
- Умовний оператор в jаvascript
- Робота з масивами в php
- Умовний оператор в php
- Перетворення типів в jаvascript.
- Оператор between в sql.
- Цикли в php
- Оператор придушення помилок в php
- jаvascript бібліотека is.js.
- Глобальні змінні в php
- Новинки в php7. Частина 2.
- Вивчаємо coffeescript. Типи даних.
- Довідкові змінні php