Operátorok 1.
Nézzük meg az összehasonlító operátorokat, példákkal illusztrálva. Az eddigi cikkekben már használtuk őket, ideje közelebbről is megismerkednünk velük.
Egyenlőség (Equal)
x == y
Igaz (true) eredményt ad vissza, ha a két érték egyenlő, hamisat (false) ha nem. Ezzel tesztelhetünk például egy feltételt:
<?php
$a = 5;
$b = 10;
echo '<b>' . 'Vizsgálat: $a == $b:' . '</b><br />';
if ($a == $b) {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Az eredmény:
Vizsgálat: $a == $b:
Hamis (false).
Mivel öt nem egyenlő tízzel, az eredmény hamis lesz, ezért a feltétel else ága lesz végrehajtva.
Most nézzük meg, mi történik ha egy számot egy string-el hasonlítunk össze:
<?php
$a = 5;
echo '<b>' . 'Vizsgálat: $a == "5":' . '</b><br />';
if ($a == "5") {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Az eredmény:
Vizsgálat: $a == "5":
Igaz (true).
Amint láthatjuk, az "==" nem vizsgálja, hogy a két érték azonos típus-e.
Nem egyenlő (Not equal)
x != y
x <> y
Az egyenlőség ellentettje, azt teszteljük, hogy két érték nem egyenlő. Azaz, igaz (true) eredményt ad vissza, ha a két érték nem egyenlő, hamisat (false) ha igen. Lássuk az előbbi két példát, ebből a szemszögből:
<?php
$a = 5;
$b = 10;
echo '<b>' . 'Vizsgálat: $a != $b:' . '</b><br />';
if ($a != $b) {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Az eredmény:
Vizsgálat: $a != $b:
Igaz (true).
Mivel a két érték nem egyenlő, ezért a feltétel igaz ága teljesül. Most lássuk a másikat:
<?php
$a = 5;
echo '<b>' . 'Vizsgálat: $a != "5":' . '</b><br />';
if ($a != "5") {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a != "5":
Hamis (false).
Mivel a "!=" szintén nem vizsgálja, hogy a két típus azonos-e, az öt mint szám egyenlő lett az öt szöveggel.
Megjegyzés: PHP-ben a "!=" ugyanaz mint a "<>", így bármelyik használható.
Azonosság (Identical)
x === y
Hasonló az egyenlőséghez, de itt az érték mellett a típusnak is egyeznie kell. Lássuk újra a két példánkat:
<?php
$a = 5;
$b = 10;
echo '<b>' . 'Vizsgálat: $a === $b:' . '</b><br />';
if ($a === $b) {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a === $b:
Hamis (false).
Mivel a két szám (öt és tíz) nem egyenlő, ezért a hamis (else) ág kerül végrehajtásra. Most nézzük a másik példát:
<?php
$a = 5;
echo '<b>' . 'Vizsgálat: $a === "5":' . '</b><br />';
if ($a === "5") {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a === "5":
Hamis (false).
Itt látszik az azonosság és az egyenlőség közti különbség. Az egyenlőség egyenlőnek mutatta a két értéket, mivel nem vizsgálja azt, hogy a két típus azonos-e. Azonban az azonosságnál egyeznie kell mind a kettőnek, ezért a számot összehasonlítva egy szöveggel hamis értéket kapunk, még akkor is, ha a két érték egyenlő.
Nem azonos (Not identical)
x !== y
Az azonosság ellentettje. Azt vizsgáljuk, hogy két érték nem azonos, de itt is számít az értékek típusa. A példák:
<?php
$a = 5;
$b = 10;
echo '<b>' . 'Vizsgálat: $a !== $b:' . '</b><br />';
if ($a !== $b) {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a !== $b:
Igaz (true).
Hiába szám típus mint a két változó, az értékük nem egyenlő. Így az eredmény igaz (true) lesz. A második példa:
<?php
$a = 5;
echo '<b>' . 'Vizsgálat: $a !== "5":' . '</b><br />';
if ($a !== "5") {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a !== "5":
Igaz (true).
Itt az értékek egyformák, de a típusok különbözőek, ezért ismét igaz (true) a vizsgálat eredménye.
Kisebb mint (Less than)
x < y
Igaz, ha az első érték kisebb, mint a második. Ha egyenlő vagy nagyobb, akkor hamis érték lesz az eredmény, a típus egyezőséget nem figyeli:
<?php
$a = 5;
$b = 10;
echo '<b>' . 'Vizsgálat: $a < $b:' . '</b><br />';
if ($a < $b) {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a < $b:
Igaz (true).
Értelemszerűen, 5 kisebb mint 10. Második példa:
<?php
$a = 5;
echo '<b>' . 'Vizsgálat: $a < "5":' . '</b><br />';
if ($a < "5") {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a < "5":
Hamis (false).
A két érték egyenlő, így a vizsgálat eredménye hamis. A két érték típusa nem egyezik, azonban a PHP végrehajtja a műveletet.
Nagyobb mint (Greater than)
x > y
Igaz, ha az első érték nagyobb, mint a második. Ha egyenlő vagy kisebb, akkor hamis érték lesz az eredmény, a típus egyezőséget nem figyeli:
<?php
$a = 5;
$b = 10;
echo '<b>' . 'Vizsgálat: $a > $b:' . '</b><br />';
if ($a > $b) {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a > $b:
Hamis (false).
5 nem nagyobb mint 10.
<?php
$a = 5;
echo '<b>' . 'Vizsgálat: $a > "5":' . '</b><br />';
if ($a > "5") {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a > "5":
Hamis (false).
A két érték egyenlő, azaz, $a nem nagyobb mint "5", így az eredmény hamis lesz. Az, hogy a két érték különböző típus, itt sem számít.
Kisebb vagy egyenlő (Less than or equal to)
x <= y
Igaz, ha az első érték kisebb, mint a második, és akkor is ha a két érték egyenlő.
<?php
$a = 5;
$b = 10;
echo '<b>' . 'Vizsgálat: $a <= $b:' . '</b><br />';
if ($a <= $b) {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a <= $b:
Igaz (true).
Talán, már nem kell magyarázni, 5 kisebb mint 10.
<?php
$a = 5;
echo '<b>' . 'Vizsgálat: $a <= "5":' . '</b><br />';
if ($a <= "5") {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a <= "5":
Igaz (true).
A típus itt sem számít, ezért a két érték egyenlő. Ez az operátor pedig egyenlőség esetén is igaz eredményt ad.
Nagyobb vagy egyenlő (Greater than or equal to)
x >= y
Igaz, ha az első érték nagyobb, mint a második, és akkor is ha a két érték egyenlő.
<?php
$a = 5;
$b = 10;
echo '<b>' . 'Vizsgálat: $a >= $b:' . '</b><br />';
if ($a >= $b) {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a >= $b:
Hamis (false).
5 nem nagyobb mint 10, és nem is egyenlő a kettő. Így az eredmény hamis.
<?php
$a = 5;
echo '<b>' . 'Vizsgálat: $a >= "5":' . '</b><br />';
if ($a >= "5") {
echo 'Igaz (true).';
} else {
echo 'Hamis (false).';
}
?>
Eredmény:
Vizsgálat: $a >= "5":
Igaz (true).
Típus nem számít, így a két érték egyenlő, tehát az eredmény igaz.