Érték és típus szerinti egyenlőség a PHP-ban
Tegyük fel, hogy úgy szeretne összehasonlítani, hogy a szám
idézőjelben ne legyen egyenlő ugyanazzal a számmal
idézőjelek nélkül. Más szóval, azt szeretné,
hogy az összehasonlítás ne csak az érték, hanem az adattípus szerint is történjen. Ehhez
a == operátor helyett a
=== operátort kell használni. Az ilyen operátorral végzett
összehasonlítást szigorúnak nevezzük.
Nézd meg a példát:
<?php
if ('3' === 3) {
echo '+++';
} else {
echo '---'; // ez fog lefutni, mert az értékek típusa nem egyenlő
}
?>
Viszont két '3' string összehasonlításakor
a képernyőre '+++' íródik ki:
<?php
if ('3' === '3') {
echo '+++'; // ez fog lefutni
} else {
echo '---';
}
?>
Ugyanígy számok összehasonlításakor:
<?php
if (3 === 3) {
echo '+++'; // ez fog lefutni
} else {
echo '---';
}
?>
A két operátor közötti különbség pontosan akkor nyilvánul meg, amikor az értékek ugyanazok, de az adattípus különbözik. Minden más esetben ezek az operátorok ugyanúgy működnek. Például, különböző számok összehasonlításakor természetesen mínusz jelenik meg:
<?php
if (2 === 3) {
echo '+++';
} else {
echo '---'; // ez fog lefutni
}
?>
Manapság a PHP-ban általánosan elfogadott, hogy mindenhol szigorú összehasonlítást használjunk. Úgy tartják, hogy ebben az esetben a kód kevésbé hajlamos hibákra.
A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:
<?php
$test1 = '3';
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 == $test2) {
echo '+++';
} else {
echo '---';
}
?>
A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:
<?php
$test1 = 3;
$test2 = '3';
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>
A kód futtatása nélkül határozd meg, mi jelenik meg a képernyőn:
<?php
$test1 = 3;
$test2 = 3;
if ($test1 === $test2) {
echo '+++';
} else {
echo '---';
}
?>