A PHP else if állítás

A PHP-ben a következő ilyen állításokkal találkozhatunk:

  • if állítás — lefuttat egy kódot, ha egy feltétel megvalósul, azaz igaz,
  • if...else állítás — lefuttat egy kódot, ha egy feltétel megvalósul, illetve egy másik kódot akkor, ha a feltétel nem valósul meg, azaz hamis,
  • if...else if...else állítás — akkor alkalmazzuk, ha több mint két feltételünk van,
  • switch állítás — egy kódot futtat le a számos kódblokk közül.

Az első két állítással már megismerkedhettél korábbi leckéinkből. Ma az else if állítást vesszük sorra, és részletesen bemutatjuk, mire és hogyan tudod alkalmazni.

Az if...else állítás remek megoldás akkor, ha csak egy feltételt szeretnénk ellenőrizni. Mit tennél azonban akkor, ha azt szeretnéd megnézni, hogy az $employee változó alatt az igazgató, Bob szerepel-e, az igazgatóhelyettes, Ms. Tanner vagy valamely más alkalmazott? Ahhoz, hogy ezeket a feltételeket ellenőrizni tudd, az else if állításra lesz szükséged.

 

Mi a PHP else if?

Az if állítás az “if”, azaz a “ha” kulcsszón alapszik (pl. $name == 'Ted'). Az else if állítás is feltételezésen alapszik, de mindenképp egy if állítás kell, hogy megelőzze — nem létezik else if állítás if állítás nélkül.

Amikor a PHP értékeli az if...else if...else állítást, mindig azt teszteli előbb, hogy az if állítás igaz-e. Ha az if állítás hamis, következő lépésként az else if lesz ellenőrizve. Ha az else if állítás is hamis, akkor a következő else if állítást teszteli, ha pedig nincs több else if, akkor az else szegmens lesz megfigyelve (ha van).

Ne ijesszen rád az előző bekezdés — bonyolultan hangzik, de sokkal érthetőbb lesz, amint egy valódi példát is bemutatunk! Kezdetnek lássuk a szintaxist:

if (condition) {
  kód, mely lefut, ha ez a feltételezés igaz;
} else if (condition) {
  kód, mely lefut, ha ez a feltételezés igaz;
} else {
  kód, mely lefut, ha minden feltételezés hamis;
}
 

Az else if alkalmazása

Kezdjük egy alaphelyzettel. Térjünk vissza az alkalmazottas példához, de egyszerűsítsük le egy kicsit. Tegyük fel, hogy csak annyit szeretnénk tudni, hogy az alkalmazott Ms. Tanner, az igazgatóhelyettes, vagy valaki más. Erre elég egy if...else állítás, nézzük:

 

PHP-kód:

$employee = 'Bob';
if ($employee == 'Ms. Tanner') {
    echo 'Üdvözlöm, hölgyem!';
} else {
    echo 'Jó reggelt!';
}
 
Ez a példa már ismerősen cseng, ha korábbi leckéinket is figyelmesen olvastad. Most azonban következzen a nehezebb rész: ha amellett, hogy Ms. Tannerről van-e szó, arra is kíváncsiak vagyunk, hogy az alkalmazott Bob-e, a nagyfőnök, vagy valaki más, az else if is szükséges lesz.

 

PHP-kód:

$employee = 'Bob';
if ($employee == 'Ms. Tanner') {
    echo 'Üdvözlöm, hölgyem!';
} else if ($employee == 'Bob') {
    echo 'Üdvözlöm, uram!';
} else {
    echo 'Jó reggelt!';
}
 

Megjelenítés a böngészőben:

Üdvözlöm, uram!

A PHP előbb azt ellenőrizte, hogy az $employee változó megegyezik-e “Ms. Tanner”-rel — az eredmény hamis. Következő lépésként a PHP az else if állítást ellenőrizte. Mivel az $employee változó valóban megegyezik “Bob”-bal, az “Üdvözlöm, uram!” kifejezés lett megjelenítve. Ha több alkalmazott nevét is szeretnénk ellenőrizni, csak arra van szükség, hogy beszúrjunk még néhány else if állítást!

Nagyon fontos, hogy mai leckénkből megjegyezd, hogy az else if állítás nem alkalmazható, ha nem előzi meg egy if állítás!

 

Az else if alkalmazása az idő esetében

Az else if állítás akkor is nagyon hasznos, ha szeretnénk a napszaknak megfelelően köszönteni a látogatóinkat a weboldalon. Az alábbi kód a “Jó reggelt!” feliratot jeleníti meg, ha a pillanatnyi idő kevesebb, mint 10, a “Jó napot!” mondatot, ha az idő kevesebb, mint 20, más esetben pedig a “Jó estét!” fog megjelenni.

 

PHP-kód:

<?php

$t = date('H');

if ($t < 10) {
  echo 'Jó reggelt!';
} else if ($t < 20) {
  echo 'Jó napot!';
} else {
  echo 'Jó estét!';
}
?>
 

Az if...else if...else állítást akkor is használhatjuk, ha máshogy szeretnénk köszönni a hét különböző napjain. Következő példánk a “Kellemes hétvégét!” feliratot írja ki, ha péntek van, a “Kellemes vasárnapot!” mondatot, ha vasárnap van, más esetben pedig a “Kellemes napot!” felirattal köszönti a látogatókat.

<?php
$d = date('N');

if ($d == 5) {
  echo 'Kellemes hétvégét!';
} else if ($d == 6) {
  echo 'Kellemes vasárnapot!';
} else {
  echo 'Kellemes napot!';
}
?>
 

Mire figyelj?

Az else if és az elseif csak akkor számítanak egyenlőnek, ha a kódban kapcsos zárójeleket használunk. Ha pontosvesszőt alkalmazunk, az elseif szót nem szabad két részre szedni, mert a PHP nem fogja tudni lefuttatni a kódot!

 

Összegzés:

Most már tisztában vagy a feltételes állítások nagy részével, és csak annyi feladatod maradt, hogy gyakorold őket. Következő cikkünkben bemutatjuk a switch állítást, mely sok esetben nagyon hasznos lehet, és jelentősen megkönnyítheti a programozó dolgát!

Az oldal sütiket használ, hogy személyre szabjuk a tartalmakat és reklámokat, hogy működjenek a közösségi média funkciók, valamint hogy elemezzük a weboldal forgalmát. Bővebben a "Részletek mutatása" gombra olvashat.
Az oldal sütiket használ, hogy személyre szabja az oldalon megjelenő tartalmat és reklámokat.