Összehasonlító operátorok

Az összehasonlító operátorok, mint nevük is sugallja, két érték összehasonlítására szolgálnak. Érdekesek lehetnek még a típus összehasonlítási táblázat, mivel mutat néhány példát különböző típusok összehasonlítására.

Táblázat 15-4. Összehasonlító operátorok

PéldaNévEredmény
$a == $bEgyenlőIgaz (TRUE), ha $a és $b értéke egyenlő
$a === $bAzonosIgaz (TRUE), ha $a és $b értéke egyenlő, és azonos típusúak (PHP 4-től)
$a != $bNem egyenlőIgaz (TRUE), ha $a és $b értékei különbözők
$a <> $bNem egyenlőIgaz (TRUE), ha $a és $b értékei különbözők
$a !== $bNem azonosIgaz (TRUE), ha $a és $b értékei vagy típusai különbözők (csak PHP 4-től)
$a < $bKisebb mintIgaz (TRUE), ha $a szigorúan kisebb, mint $b
$a > $bNagyobb mintIgaz (TRUE), ha $a szigorúan nagyobb, mint $b
$a <= $bKisebb, vagy egyenlőIgaz (TRUE), ha $a kisebb, vagy egyenlő, mint $b
$a >= $bNagyobb, vagy egyenlőIgaz (TRUE), ha $a nagyobb, vagy egyenlő, mint $b

Ha egészet hasonlítasz stringgel, a string előbb számmá konvertálódik. Ha két számot reprezentáló stringet hasonlítasz össze, egész számokként lesznek összehasonlítva. Ezek a szabályok a switch utasítás esetén is érvényesek.

<?php
var_dump
(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true

switch ("a") {
case
0:
    echo
"0";
    break;
case
"a": // nem éri el az "a"-t, mert egyezett 0-val
    
echo "a";
    break;
}
?>

Lásd még: strcasecmp(), strcmp(), tömboperátorok, típusok.

A ternáris operátor

Egy másik feltételes operátor a "?:" (ternáris) operátor.

Példa 15-2. Alapértelmezett érték beállítása

<?php
// Példa ternáris operátor használatára
$muvelet = (empty($_POST['muvelet'])) ? 'alap' : $_POST['muvelet'];

// A fenti azonos az alábbi az if/else utasítással:
if (empty($_POST['muvelet'])) {
    
$muvelet = 'alap';
} else {
    
$muvelet = $_POST['muvelet'];
}
?>
A (expr1) ? (expr2) : (expr3) kifejezés kif2-t értékeli ki, ha kif1 értéke igaz (TRUE), és kif3-at, ha kif1 értéke hamis (FALSE).