2015. máj 06.

Operátorok 1.

írta: Bozzai Gyula
Operátorok 1.

php_op_01_k.jpg

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.

 

A jövő héten folytatjuk...
Szólj hozzá

echo true if else operator false