Rovnost podle hodnoty a typu v PHP
Předpokládejme, že chcete porovnávat tak, aby číslo
v uvozovkách nebylo rovno stejnému číslu
bez uvozovek. Jinými slovy, chcete
porovnávat tak, aby porovnání bylo nejen
podle hodnoty, ale také podle typu dat. K tomu
místo operátoru == použijte
operátor ===. Porovnání s takovým operátorem
se nazývá přísné.
Podívejte se na příklad:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // sestaví se toto, protože hodnoty nejsou stejného typu
}
?>
Zatímco při porovnání dvou řetězců '3'
se na obrazovku vypíše '+++':
<?php
if ('3' === '3') {
echo '+++'; // sestaví se toto
} else {
echo '---';
}
?>
Stejně jako při porovnání čísel:
<?php
if (3 === 3) {
echo '+++'; // sestaví se toto
} else {
echo '---';
}
?>
Rozdíl mezi dvěma operátory se projevuje právě tehdy, když jsou hodnoty stejné, ale liší se datový typ. V ostatních případech tyto operátory fungují stejně. Například při porovnání různých čísel se samozřejmě vypíše mínus:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // sestaví se toto
}
?>
V současné době je v PHP běžné používat všude přísné porovnání. Má se za to, že v tomto případě je kód méně náchylný k chybám.
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
Bez spuštění kodu určete, co se vypíše na obrazovku:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>