Feltételek és Ciklusok

PHP logikai feltételek (if-else) és foreach ciklusok működése

A változókban tárolt adatok önmagukban nem sokat érnek, ha nem tudunk velük logikai döntéseket hozni, vagy nem tudjuk őket automatizáltan feldolgozni. A PHP két legfontosabb vezérlési szerkezete az if/else (feltétel) és a foreach (ciklus).

Az If / Else (A Kidobóember)

Képzeld el az if (ha) utasítást úgy, mint egy szórakozóhely kidobóemberét. Megvizsgál egy állítást, és ha az IGAZ (true), akkor beenged a kódblokkba. Ha HAMIS (false), akkor az else (különben) ágra küld.

<?php
    $eletkor = 33;
    
    if ($eletkor >= 100) {
        // Ez a kód fut le, ha a feltétel IGAZ
        echo "<p>Üdvözlünk a webshopban! Megvásárolhatod a terméket.</p>";
    } else {
        // Ez a kód fut le, ha a feltétel HAMIS
        echo "<p>Sajnáljuk, ez a tartalom csak 100 éven felülieknek elérhető.</p>";
    }
?>

A Ciklusok (A Robotmunka)

A programozók lusták. Ha ki kell írni 100 darab terméket a képernyőre, nem fogják 100-szor leírni a HTML kódot. Ehelyett írnak egy ciklust, ami megcsinálja helyettük a robotmunkát a másodperc töredéke alatt.

A Foreach ciklus (A Webfejlesztők Szent Grálja)

A PHP-ban többféle ciklus létezik (for, while), de a webfejlesztésben az esetek 95%-ában a foreach-et fogod használni. Ezt kifejezetten arra találták ki, hogy végigmenjen egy Tömb (Array) összes elemén, az elsőtől az utolsóig.

Nézzünk egy valós, gyakorlati példát. Van egy listánk a menüpontokról, és szeretnénk belőle egy HTML navigációs menüt generálni:

<?php
    // 1. Létrehozzuk az adatokat (Tömb)
    $menupontok = array("Főoldal", "Szolgáltatások", "Rólunk", "Kapcsolat");
    
    echo "<ul>"; // Megnyitjuk a HTML listát
    
    // 2. Elindítjuk a ciklust
    // Magyarul: "Menj végig a $menupontok tömbön, és az éppen aktuális elemet nevezd el $aktualis_elem-nek"
    foreach ($menupontok as $aktualis_elem) {
        
        // Ez a kód annyiszor fut le, ahány elem van a tömbben (most 4-szer)
        echo "<li><a href='#'>" . $aktualis_elem . "</a></li>";
        
    }
    
    echo "</ul>"; // Lezárjuk a HTML listát
?>

A Profi Módszer: PHP és HTML tiszta keverése

A fenti példában az echo paranccsal írattuk ki a HTML-t. Ez kis kódoknál működik, de egy bonyolult, több div-ből álló termékkártyánál átláthatatlan lesz. A profi fejlesztők "megszakítják" a PHP kódot, leírják a tiszta HTML-t, és csak az adatok helyére szúrnak be egy kis PHP-t.

<?php 
    $termekek = array("Laptop", "Egér", "Billentyűzet"); 
?>

<!-- Tiszta HTML kezdődik -->
<div class="termek-lista">

    <?php foreach($termekek as $termek): ?>
        
        <!-- Ez a HTML kártya fog ismétlődni -->
        <div class="kártya">
            <h3> <?php echo $termek; ?> </h3>
            <button>Kosárba</button>
        </div>
        
    <?php endforeach; ?>

</div>

Figyeld meg a kettőspontot (:) a foreach végén, és az endforeach; lezárást! Ez a szintaxis sokkal olvashatóbbá teszi a sablonokat (Templates), és a WordPress is pontosan ezt a módszert használja a motorháztető alatt.

← Előző lecke Következő lecke: Űrlapok feldolgozása →