Porovnávání == a ===

Pro porovnávání dvou hodnot existuje v PHP operátor ==.

$a = 1;
if ($a == 1) // něco se provede

Porovnávání dvojitým rovnítkem ale má v PHP (ale i v JavaScriptu) svá specifika. Před samotným porovnáním totiž obsah přetypuje.

Porovnání Výsledek
0 == "0" true
0 == 0.0 true
0 == "" true

Kladný výsledek porovnávání 0 == "" už může vypadat trochu divně. Ještě zvláštněji působí:

Porovnání Výsledek
'0e1' == 0 true
'1e2' == 100 true

Zde se budou rovnat různé zápisy čísla. To 1e2 znamená 1 * 10 ^ 2.

Vtipná situace může potom nastat při následujícím porovnání:

Porovnání Výsledek
md5('240610708') == md5('QNKCDZO') true

Nejedná se o problém v md5, ale o to, že:

  • md5('240610708')0e4620974319065090195629887368540
  • md5('QNKCDZO')0e8304004519934940580242199033910

Porovnávání dvěma = je tedy značně nevyzpytatelné.

Tři rovná se (===)

Použití === potom zajistí, že výše uvedené konstrukce skončí jako false.

Porovnání Výsledek
0 === "0" false
0 === 0.0 false
0 === "" false
'0e1' === 0 false

Automatický převod == na ===

Některé editory/IDE navrhují používat rovnou ===.

Důrazně ale varuji před automatickým nahrazením == za ===, snadno to může vytvořit fatální chybu v případě, že programátor s chováním dvou rovnítek (a přetypováním) počítal.

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Offline webová stránka

Offline webová stránka

Jak umožnit návštěvníkům stažení celé webové stránky pro prohlížení offline, umístění na CD apod.

Převod PHP na JavaScript

Převedení PHP do JavaScriptu

Jak převést PHP kód do JavaScriptu.

Výpis náhodného obsahu

Výpis náhodného textu

Jak na stránce náhodně vypsat obrázek, odkaz, reklamu, text nebo cokoliv jiného.

Chyby při programování

Jak zobrazit chybové hlášky

Při odstraňování problému v HTML/CSS/JS/PHP/SQL je nutný přístup k chybovým hláškám, jak se k nim dostat?

Jak vytvořit WYSIWYG editor

Vlastní jednoduchý WYSIWYG editor

Chceme-li na webu zadávat text a běžná <textarea> už nestačí, řešením je napsat si vlastní WYSIWYG editor.

Komentáře