Hogyan kezdjünk el PHP-vel – Útmutató kezdőknek
A PHP az egyik leggyakrabban használt programozási nyelv a szerveroldali programozáshoz. Az idők folyamán a modern weboldalak és internetes technológiák szerves részévé vált. Mindazonáltal a PHP elsajátítása kezdők számára megterhelő lehet. Ebben a PHP bemutatóban bemutatjuk a népszerű programozási nyelv alapjait, valamint a legfontosabb operátorokat, ciklusokat és függvényeket.
A PHP bemutató megkezdése előtt szükséges eszközök
A bemutatónk elsősorban újoncoknak szól. Azonban hasznos lehet, ha rendelkezik alapvető ismeretekkel a modern webfejlesztésről és a HTML-ről. Ahhoz, hogy követni tudja a bemutatót és saját számítógépén reprodukálni tudja a példákat, győződjön meg arról, hogy a következőket előkészítette:
- Webszerver PHP értelmezővel
- PHP telepítve
- Webböngésző
- Szövegszerkesztő
Szerverként a helyi tesztkörnyezetet, az XAMPP-t ajánljuk, amelyet az Apache Friends ingyenesen biztosít Windows, Linux és macOS operációs rendszerekhez. Az XAMPP egy tisztán tesztelésre szolgáló szerver. A webfejlesztők a szoftver segítségével könnyedén beállíthatják a szkriptek, HTML-oldalak és stíluslapok tesztkörnyezetét. Azonban a webszerver biztonságos működése az interneten nem garantált. A részletes telepítési utasításokat az XAMPP oktatóanyagunkban találja.
Mi a PHP szintaxisa?
Miután beállította a helyi webszervert (például XAMPP használatával), célszerű ellenőrizni, hogy a PHP megfelelően települt-e és készen áll-e a szkriptek futtatására. A szkript olyan program, amelyet nem bináris kódba fordítottak le. Ehelyett egy értelmező futtatja őket. Nyissa meg a kívánt szövegszerkesztőt, és alkalmazza a következő PHP szkriptet:
<?php
phpinfo();
?>php
A PHP szkriptek egy meghatározott szerkezetet követnek. A nyitó PHP tag <?php indítja ela szkript környezetet. Ezt követi a tényleges PHP kód utasítások formájában. A fenti példában ez a phpinfo()függvényhívása. A legtöbb PHP függvény egy vagy több paramétert igényel, amelyeket zárójelek között kell megadni. A phpinfo() esetében ezek a paraméterek opcionálisak:phpinfo(INFO_ALL). Minden utasítás pontosvesszővel (;) végződik. A szkript lezárásához használja a záró PHP-címkét:?>.
A függvények olyan szubrutinok, amelyek lehetővé teszik a programkód egyes részeinek kiszervezését. Az ismétlődések elkerülése érdekében az ismétlődő feladatok egyszer definiálhatók függvényként, majd a függvénynévvel hívhatók meg. A webfejlesztők erre a célra előre definiált PHP-függvényeket használnak, vagy saját szubrutinokat hoznak létre.
Mentse el a szövegfájlt test néven .php (PHP szkript) formátumban, és indítsa el a webszervert. Ha a XAMPP tesztkörnyezetet használja, mentse el a test.php fájlt a XAMPP könyvtár htdocs mappájába (C:\xampp\htdocs).
A mintafájlhoz a következő URL-címen keresztül férhet hozzá a böngészőben: http://localhost/test.php. Ha alternatív webszervert vagy a XAMPP szoftver egyéni konfigurációját használja, válassza ki az URL-címet a megfelelő fájl elérési útjának megfelelően.
Amikor beírja az http://localhost/test.php URL-t, a böngésző megkéri a webszervertől a test.php fájlt. Az Apache HTTP szerver (vagy bármely más, Ön által használt webszerver szoftver) letölti a fájlt a megfelelő könyvtárból. A .php kiterjesztés jelzi, hogy a fájl PHP kódot tartalmaz. Ekkor a webszerverbe integrált PHP értelmező aktiválódik. Feldolgozza a dokumentumot, és megtalálja a nyitó PHP-címkét <?php, amely jelzi a PHP-kód elindítását. Az értelmező folytatja a PHP-kód végrehajtását, és HTML-kimenetet generál, amelyet a webszerver továbbít a webböngészőnek megjelenítésre. Ha a PHP helyesen lett telepítve, a szkript végrehajtása a következő weboldalt eredményezi:

A phpinfo() függvény az alapértelmezett phpinfo( INFO_ALL ) rövidítése. Ez részletes információkat ad a webszerver PHP-konfigurációjáról. Ha nem található PHP-verzió, a webböngésző hibaüzenetet jelenít meg, vagy a PHP-kódot értelmezés nélkül továbbítja a böngészőnek.
„Hello World!” – Hogyan lehet szöveget kinyomtatni az echo paranccsal?
A PHP sikeres telepítése után itt az ideje megírni az első szkriptet. Ehhez használhatja a PHP echo parancsot. A phpinfo()-tól eltérően az echo nem egy függvény. Inkább egy nyelvi konstrukció, amely lehetővé teszi a következő karakterlánc szövegként való kimenetét.
A nyelvi konstrukciók a PHP-ben a programfolyamat vezérlésére használt utasítások. Az echo mellett a nyelvi konstrukciók közé tartoznak az if, for, do, include, return, exit vagy the utasítások. A függvényekkel ellentétben ezekhez nem szükséges zárójeleket használni.
Az első egyéni szkriptjéhez hozzon létre egy új PHP fájlt, és írja be a következő kódot:
<?php
echo 'Hello World!';
?>phpAz <?php nyitó tag egy szkript környezetet indít el. Ezt követi az echo nyelvi konstrukció és a Hello World! karakterlánc, amely egyszerű idézőjelek között szerepel. A ?> taggal zárhatja le a szkriptet. Figyeljen a kijelentés utáni pontosvesszőre. A Hello World! helyett bármilyen szöveg használható.
Mentse el a szkriptet hello.php néven a webszerver htdocs könyvtárában. Ezután nyissa meg a fájlt a böngészőjében az http://localhost/hello.php URL-címen. Ha a kód pontosan átkerült, a böngészőablakban megjelenik az Ön által használt karakterlánc:

Az echo paranccsal létrehozott szövegek szükség szerint HTML-címkéket is tartalmazhatnak. Ezeket a címkéket a webböngésző a HTML-specifikációknak megfelelően értelmezi. Próbálja ki ezt a koncepciót például a következő szkript segítségével:
<?php
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>phpA webböngészőben történő meghíváskor a szkript végrehajtásának eredménye a következőképpen jelenik meg.

A <h1> taggel körülvett Hello World! szöveget a webböngésző elsődleges címsorként értelmezi. Ezt automatikus sortörés követi, majd a <p> tagek közötti szövegbekezdés.
Az igényeinek megfelelően az echo parancsot egyszerű idézőjelekkel (’) vagy dupla idézőjelekkel (“) is használhatja. Ha csak szöveget ad ki, akkor az idézőjelek választása nem számít. Ez a különbség azonban jelentős lesz, ha PHP változókkal dolgozik.
Változók
Az echo nyelvi konstrukció többet kínál, mint csak szövegmegjelenítést. A szövegmegjelenítés már HTML segítségével is hatékonyan megvalósítható. Az echo PHP nyelvi konstrukció használatának valódi előnye abban rejlik, hogy változók segítségével dinamikusan képes szöveget létrehozni.
A PHP felhasználók gyakran találkoznak a következő formátumú változókkal: $example
Minden változó egy dollárjelből ($) és az azt követő változó névből áll. A változókat a PHP szkriptekben használják külső adatok beépítésére a weboldalakba. Különböző típusú értékeket tartalmazhatnak, az alapvető számoktól és karakterláncoktól a teljes szövegekig vagy HTML-dokumentumokig. A PHP hét különböző változótípust különböztet meg:
| Változó típus | Leírás |
|---|---|
| Karaktersorozat | A karakterlánc egy karakterekből álló sorozat. Kifejezhet egy szót, egy kifejezést, egy szövegrészt vagy akár egy weboldal teljes HTML-kódját is. |
| Egész | Az egész szám egy tizedesjegy nélküli egész szám. Lehet pozitív vagy negatív. |
| Float | A lebegőpontos szám egy lebegőpontos szám. Ez egy tizedesjegyekkel rendelkező numerikus érték. A PHP legfeljebb 14 tizedesjegyet támogat a tizedesvessző után. |
| Boolean | A logikai változók logikai műveletek eredményei, és csak két értéket ismernek: TRUE (igaz) és FALSE (hamis). Ez a változótípus feltételek kezelésekor használatos. |
| Tömb | A tömb egy változó, amely több elemet is tartalmazhat. Ez több hasonló szerkezetű adat csoportosítása, amelyeket tömbbé kombináltak. |
| Objektum | Az objektum változótípus lehetővé teszi a programozók számára, hogy saját adattípusokat határozzanak meg. Objektumorientált programozásban használják. Az objektumváltozókat is belefoglaltuk ebbe a PHP-tananyagba. |
| NULL | A NULL érték egy érték nélküli változót jelöl. Az ilyen típusú változók esetében a NULL az egyetlen lehetséges érték. |
A tartalom központosítását általában adatbázis-rendszerekkel kezelik. Mindazonáltal a változó értékeket közvetlenül a szkriptben is meg lehet adni. Ez a típusú hozzárendelés a következő mintát használja:
$example = "value";phpA dollárjel után a változó neve következik (ebben az esetben example). Az egyenlőségjel (=) köti össze a dupla idézőjelek között szereplő értékkel. Az egész és lebegőpontos típusú változók értékeit idézőjelek nélkül írjuk (például $example = 24;és $example= 2.7;).
A PHP rugalmasságot biztosít a változók elnevezésében. Bizonyos korlátozások azonban érvényesek:
- Minden változó dollárjelekkel kezdődik.
- A változó neve bármilyen betűkből, számokból és aláhúzásjelekből álló karakterlánc lehet (például $example_1).
- Az érvényes változónevek mindig betűvel vagy aláhúzással kezdődnek ($example1 vagy $_example), soha nem számmal (helytelen: $1example).
- A PHP megkülönbözteti a kis- és nagybetűket. A szkriptnyelv megkülönbözteti a kis- és nagybetűket ($example ≠ $Example).
- A változó neve nem tartalmazhat szóközöket vagy sortöréseket (helytelen: $example 1).
- A PHP által más célokra fenntartott karakterláncok nem használhatók felhasználó által definiált változóként (például ,$this).
Illusztráljuk ezt egy példával:
<?php
$author = "John Doe";
echo "<h1>Hello World!</h1>
<p>This dynamic web page was created by $author.</p>";
?>phpA nyitó PHP-címke után következik a változó definíciója. Ebben az esetben a $author változóhoz a John Doe érték van hozzárendelve. A szkript végrehajtásakor a szkriptben található $author változó minden példánya a szkript környezetben a John Doe értékkel helyettesítődik. Ezt a folyamatot a webböngészőben a következő ábra szemlélteti:

Ha a weboldalt John Doe német kollégájának, Max Mustermannnak kell tulajdonítani, és nem John Doe-nak, akkor ezt a $author változó megváltoztatásával javíthatja.

Ez különösen hatékony, ha egy változó többször is előfordul egy szkriptben. Ebben az esetben a javítást csak egy helyen kell elvégezni, mégpedig ott, ahol a változó értéke definiálva van.
Ez jól illusztrálja a PHP képességeit: a tartalom változók segítségével ágyazható be. Ez a tulajdonság képezi a dinamikus webfejlesztés alapját. A statikus weboldalakkal ellentétben, amelyek előre renderelt HTML-oldalakként léteznek, a dinamikus weboldalak csak akkor generálódnak, amikor az oldalra rákattintanak. A PHP értelmező változók segítségével különböző adatbázisokból lekérdezi a kért weboldal egyes elemeit, majd azokat egyedi HTML-oldallá állítja össze, amely megfelel a konkrét kérésnek.
Ennek a megközelítésnek az előnyei nyilvánvalóak. Amikor a weboldal elemeit (pl. a lábléc részét) módosítják, nem szükséges minden egyes aloldalon manuálisan elvégezni a módosításokat. Elég, ha a megfelelő bejegyzést frissítik az adatbázisban. Ennek eredményeként a módosítások automatikusan alkalmazásra kerülnek minden olyan weboldalon, amelyen a vonatkozó adatok változóként szerepelnek. Ha egy változót többször definiálnak egy szkriptben, az új definíció felülírja az előzőt. A következő echo mindig a változó aktuális értékét adja ki.
<?php
$author = "John Doe";
echo "<h1>Hello World!</h1>
<p>This dynamic web page was created by $author.</p>";
$author = "Max Mustermann";
echo " <p>Supported by $author.</p>";
?>php
A kódpéldában az $author változónak először a John Doe értéket rendelték hozzá, majd azt a Max Mustermann értékkel helyettesítették.
Most térjünk rá az idézőjelek témájára. A karakterláncokkal ellentétben az egyes változókat nem kell idézőjelek közé tenni:
<?php
$author = "John Doe";
echo $author;
?>phpKivéve, ha a változót egy karakterláncban kell használni. Ebben az esetben dupla idézőjeleket („) kell használni. Ez arra utasítja a PHP értelmezőt, hogy vizsgálja meg a karakterláncot a változókra, és szükség szerint cserélje ki azokat a megfelelő értékekre. Az egyszerű idézőjelek (’) közé zárt karakterláncokat egyszerű szöveges információként értelmezi és jeleníti meg a rendszer, még akkor is, ha változókat tartalmaznak.
<?php
$author = "John Doe";
echo '<h1>Hello World!</h1>
<p>This dynamic web page was created by $author.</p>';
?>php
Most talán azon tűnődsz, mi történik, ha az idézőjeleket teljesen elhagyod. Ebben az esetben a PHP szintaxis hibát jelez.
Hibaüzenetek és maszkolás
Ha szintaktikai hibák lépnek fel, akkor nincs érvényes PHP-kód, és a PHP-értelmező hibaüzenetet ad ki. Ez például akkor várható, ha az echo utasítást idézőjelek nélküli karakterlánccal használja:
<?php
echo Hello World!;
?>phpA hibaüzenetek legtöbb esetben tartalmaznak információt arról, hogy hol történt a hiba, ami fontos információt nyújt a hiba elhárításához.

A jelenlegi példában a programkód 2. sorában hiba gyanúja merül fel. Pontosan itt hagytuk ki az idézőjeleket.
Szintaktikai hibák akkor is előfordulnak, ha olyan karaktereket szeretne kinyomtatni szövegként, amelyek egy adott feladathoz kapcsolódnak a PHP-ben. Erre példa az idézőjel (’). Az ilyen karakterek csak akkor nyomtathatók ki szövegként a PHP-ben, ha jelzi az értelmezőnek, hogy a karakter eredeti funkciója semlegesítve lett. Az egyszerű idézőjelek esetében ezt kétféleképpen lehet megtenni. Az egyszerű idézőjelekkel ellátott karakterláncot dupla idézőjelek közé tehetjük, vagy az idézőjeleket egy előtte álló backslash (\) karakterrel maszkolhatjuk:
<?php
echo '\'Hello World!\' ';
?>php
Az egyszerű és dupla idézőjelek kombinálása szintén egy lehetséges megközelítés:
<?php
echo " 'Hello World!' ";
?>phpAz alábbi helyesírás azonban nem megfelelő:
<?php
echo ' 'Hello World!' ';
?>phpAz idézőjelek közötti szóközöket az olvashatóság érdekében illesztettük be a példákba.
Összekapcsolási operátorok
Ha egyszerre több változót szeretnél kinyomtatni egy PHP szkriptben, akkor az eddig tanultakat felhasználva a következőket teheted:
<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo "<h1>Hello World!</h1>
<p>This dynamic web page was created by $author1 and $author2.</p>";
?>phpEgyszerűen írja be mindkét változót a dupla idézőjelek közé, a többi kinyomtatandó szöveggel együtt. A PHP automatikusan felismeri a változókat a dollárjel ($) alapján, és beilleszti a megfelelő értékeket.

A programozók körében azonban ez az eljárás tisztátalannak számít. Van egy programozási szabály, miszerint a változók nem lehetnek a karakterlánc részét képezik. Ennek egyik oka, hogy sok programozási nyelv megköveteli ezt a szétválasztást. Ennél is fontosabb, hogy a PHP is megköveteli a karakterlánc és a változó szétválasztását, ha függvényhívásokkal vagy összetettebb változókkal dolgozunk. Emiatt a legjobb, ha a sima szöveges kimenetben is szétválasztjuk őket, még akkor is, ha ebben az esetben ez nem feltétlenül szükséges.
Változókkal dolgozva mindig több elemmel kell foglalkozni, amelyeket a kimenet során össze kell fűzni. A PHP-ben erre a célra a fűzőjel (. ) operátort használják. Ha „tisztán” programozzuk, a fenti példa kódja így néz ki:
<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo '<h1>Hello World!</h1>
<p>This dynamic web page was created by ' . $author1 . ' and ' . $author2 . '.</p>';
?>php
Itt három karakterlánccal és két változóval van dolgunk, amelyek egy karakterlánccá láncolódtak össze.
| String1 | Változó1 | String2 | Változó2 | String3 | ||||
|---|---|---|---|---|---|---|---|---|
| ’<h1>Hello World!</h1> <p>Ez a dinamikus weboldal ’ | . | $author1 | . | ’ és ’ | . | $author2 | . | ”.</p>” |
Fontos megemlíteni, hogy a konkatenációs operátor szóközök beillesztése nélkül egyesíti a karakterláncokat vagy változókat. Ha szóköz beillesztése szükséges, azt a példában látható módon kifejezetten be kell illeszteni a karakterlánc idézőjelek közé.
A programozók a konkatenációs operátort nemcsak karakterláncok és változók szöveges kimenethez való összekapcsolására használják, hanem változók kiterjesztésére is. Az alábbi példa szemlélteti, hogyan történik ez:
<?php
$example = 'Hello ';
$ example .= 'World';
echo $ example;
?>phpEgy változó értékének kiterjesztéséhez határozza meg újra, de az egyenlőségjel előtt tegyen egy pontot (.). Ez a szokásos rövidítés a $example = $example . ‘world’ kifejezéshez .
A PHP az új értéket a korábban definiált értékhez fűzi. Ha szóközöt szeretne a két érték között, írja azt az első karakterlánc végére, ahogy a példában látható.

PHP beágyazása HTML-be
Elvileg a PHP értelmező csak a nyitó és záró PHP-címke közötti kóddal foglalkozik:
<?php [This section is parsed by the PHP interpreter] ?>
Az értelmező figyelmen kívül hagyja a dokumentum összes többi szakaszát, és változatlan formában továbbítja azokat a webszervernek. Ennek eredményeként a PHP-kód szükség szerint zökkenőmentesen beépíthető a HTML-dokumentumokba, például tartalomkezelő rendszerek sablonjainak elkészítésekor. Rendkívül fontos, hogy a PHP kódot tartalmazó HTML dokumentumokat PHP fájlkiterjesztéssel mentsük el. Ellenkező esetben a dokumentumot a PHP értelmező előfeldolgozása nélkül közvetlenül a webböngészőnek továbbítja. Ebben az esetben a kód szövegként jelenik meg a weboldalon.
A PHP értelmezőt úgy lehet elképzelni, mint a webszerver lusta kollégáját, aki csak akkor dolgozik, ha kifejezetten megkérik rá, pl. egy nyitó PHP-taggal.
A HTML és a PHP kombinálásához írja meg HTML-oldalát a klasszikus dokumentumszerkezetben, és mentse .php fájlkiterjesztéssel:
<html lang="de">
<head>
<meta charset="utf-8">
<title>My first PHP page</title>
</head>
<body>
<h1>Hello World</h1>
<p>What is the current time and date?</p>
</body>
</html>htmlMost adjon hozzá egy PHP szkriptet a HTML dokumentumához. Győződjön meg arról, hogy az összes kód a PHP címkék között van.
<html lang="de">
<head>
<meta charset="utf-8">
<title>My first PHP page</title>
</head>
<body>
<h1>Hello World</h1>
<p>What is the current time and date?</p>
<p>Your current time and date is:
<?php
echo date("d.m.Y H:i:s");
?>.</p>
</body>
</html>htmlEbben az esetben az echo nyelvi konstrukciót a PHP date() függvénnyel egyesítettük, hogy a szerver oldali szövegként a jelenlegi dátumot és időt adja ki. A függvény paramétere meghatározza a kívánt formátumot, amelyet karakterláncként jelölünk:
d.m.Y H:i:s = nap.hónap.év óra:perc:másodperc.
Amikor egy webböngésző ilyen fájlt kér, a PHP értelmező először végrehajtja a szkriptet, és a jelenlegi időt szövegként beágyazza a HTML-dokumentumba. Ezután a webszerver továbbítja ezt a dokumentumot, amelyet a böngésző weboldalként jelenít meg.

PHP kommentfunkció
A HTML-kódhoz hasonlóan a PHP-kódban is lehet megjegyzéseket hagyni. A forráskódban szereplő megjegyzéseket a PHP-értelmező figyelmen kívül hagyja, amennyiben azok megfelelnek a szintaxis szabályainak. A PHP három különböző módszert kínál a megjegyzések hozzáadására.
Ha egy egész sort kommentárként szeretne megjelölni, és így kizárni az értelmezésből, akkor használhatja a hashtagot (#) vagy két egymást követő perjelet (//). Mindkét lehetőséget használjuk a következő kódpéldában:
<?php
#This is a single-line comment!
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
//This is also a single-line comment!
?>phpA Notepad++ szövegszerkesztő zöld színnel jelöli a megjegyzéseket. A HTML-megjegyzésekkel ellentétben a szkriptkörnyezetben megjegyzésként megjelölt szövegrészek nem jutnak el a webböngészőhöz. Ez a különbség abból adódik, hogy a PHP-értelmező már a szkript végrehajtása során figyelmen kívül hagyja őket.

Ezenkívül több sorra kiterjedő megjegyzéseket is beilleszthet. Ehhez jelölje meg a megjegyzés szakasz kezdetét egy perjel és egy csillag (/*) jelöléssel, a végét pedig egy csillag és egy perjel (*/) jelöléssel.
<?php
/*
This is a multiple-line comment block
that spans over multiple
lines
*/
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>phpAz ilyen megjegyzéseket nem elemzik, és nem jelennek meg a weboldalon.

A programozók megjegyzéseket használnak a szkriptek forráskódjának strukturálására, megjegyzéseket hagynak későbbi szerkesztéshez, vagy belső információkat adnak hozzá a buildhez, például a szerzőt vagy a dátumot. A megjegyzések opcionálisak, és a forráskód jó olvashatóságának biztosítása érdekében csak ritkán szabad használni őket.
Számítás változókkal
PHP-tanfolyamunkban már találkoztál változókkal, amelyek elsősorban karakterláncértékeket tárolnak. Most pedig nézzük meg az egész számokat vagy lebegőpontos számokat képviselő változókat. Ha a változók numerikus értékeket tárolnak, a PHP lehetővé teszi, hogy számításokat végezzünk velük. Kezdjük két egész szám összeadásával:
<?php
$number1 = 237;
$number2 = 148;
$result = $number1 + $number2;
echo "result: " . $result;
?>phpElőször a 237 és 148 egész számokat rendeljük a $number1 és $number2 változókhoz, majd meghatározzuk a $result változót. Ez a $number1 és $number2 változók összegének tárolására szolgál. Ehhez a művelethez a + (plusz) aritmetikai operátort használjuk. Végül az összeg szövegként kerül kinyomtatásra az echo nyelvi konstrukcióval. Ne feledje, hogy a változókhoz numerikus értékek hozzárendelésekor nem szükséges idézőjeleket használni.

Az alábbi kódpélda bemutatja a PHP-vel szerver oldalon elvégezhető matematikai számítások egy részét. A használt PHP operátorok többségükben megfelelnek a standard matematikai szimbólumoknak.
| Aritmetikai operátor | Művelet | Eredmény |
|---|---|---|
| $szám1 + $szám2 | Összeadás | $szám1 és $szám2 összege |
| $szám1 - $szám2 | Kivonás | A $szám1 és a $szám2 különbsége |
| $szám1 *$szám2 | Szorzás | A $szám1 és a $szám2 szorzata |
| $szám1 / $szám2 | Osztás | A $szám1 és a $szám2 hányadosa |
| $szám1 **$szám2 | Hatvány | $szám1$szám2-edik hatványa |
<?php
$number1 = 10;
$number2 = 5;
$addition = $number1 + $number2; //addition
$subtraction = $number1 - $number2; //subtraction
$multiplication = $number1 * $number2; //multiplication
$division = $number1 / $number2; //division
$power = $number1 ** $number2; //power
?>php<?php
echo "Result of addition: " . $addition ."<br />";
echo "Result of subtraction: " . $subtraction . "<br />";
echo "Result of multiplication: " . $multiplication . "<br />";
echo "Result of division: " . $division . "<br />";
echo "10 to the 5th power (10^5): " . $power . "<br />";
echo "root of 81: " . sqrt(81) . "<br />";
?>php
Bonyolult számítások esetén különböző aritmetikai műveletek kombinálhatók egy szkriptben:
<?php
$number1 = 10;
$number2 = 5;
$result = 2 *$number1 + 5* $number2 - 3 * sqrt(81);
echo "Result: " . $result;
?>phpA PHP értelmező meghatározza a változók értékeit és kiszámítja:
2 *10 + 5* 5 - 3 * √81 = 20 + 25 - 27 = 18
A sqrt() függvény kiszámítja a zárójelben szereplő paraméter négyzetgyökét. A matematika klasszikus műveleti rangsora érvényes: pont előtt kötőjel. Az echo utasítás az eredményt karakterláncként adja ki a webböngésző számára.

A PHP szintén először a zárójelbe tett kifejezéseket értékeli. Ezúttal lebegőpontos számokkal fogunk dolgozni:
<?php
$number1 = 2.5;
$number2 = 3.7;
$result = 2 *($number1 + 5)* ($number2 - 3) * sqrt(81);
echo "Result: " . $result;
?>php
Mint minden általános programozási nyelv, a PHP is lehetővé teszi az operátorok számára, hogy a numerikus értékeket 1-gyel növeljék vagy csökkentsék. Megkülönböztetünk előzetes növelő operátort, előzetes csökkentő operátort, utólagos növelő operátort és utólagos csökkentő operátort.
| Művelet | Operátor | Eredmény |
|---|---|---|
| Előzetes növekmény | ++$szám | A ++ operátor növeli a $szám változó értékét. Az érték 1-gyel növekszik. Az eredmény a $szám új értékeként kerül visszaadásra. |
| Előzetes csökkentés | –$szám | A – operátor csökkenti a $szám változó értékét. Ez 1-gyel csökkenti az értéket. Az eredmény a $szám új értéke. |
| Utólagos növelés | $number | Először a $szám aktuális értéke kerül visszaadásra, majd 1-gyel növelésre kerül. |
| Utólagos csökkentés | $number– | Először a $number aktuális értéke kerül visszaadásra, majd 1-gyel csökkentésre kerül. |
Először egy példával illusztráljuk, hogyan lehet aritmetikai műveleteket végrehajtani növekmény- és csökkenő operátorokkal, előzetes növekménnyel. A következő szkript 1-gyel növeli a $number változó értékét, az új értéket a $result változóban tárolja, majd annak értékét karakterláncként adja ki:
<?php
$number = 0;
$result = ++$number;
echo "Result: " . $result;
?>phpHa a 0 értéket 1-gyel növeli, akkor az eredmény 1 lesz.

A $number változó előzetes csökkentésének kiszámításához ugyanazokat a szkripteket használjuk, de az előzetes növelő operátort (++) kicseréljük az előzetes csökkentő operátorra (–):
<?php
$number = 0;
$result = --$number;
echo "Result: " . $result;
?>phpItt a $number változó 0 értékét csökkentjük, és a -1 eredményt kapjuk.

Egy érték növekedése a kimenet előtt és után (pre- vs. post-…) a következő szkripttel demonstrálható:
<?php
$x = 0;
echo '<p>result: ' . ++$x;
echo '<br>x has the value ' . $x;
echo '<p>result: ' . $x++;
echo '<br>x has the value ' . $x, '</p>';
?>phpMindkét esetben ugyanazt az eredményt kapjuk. Előzetes inkrementálás esetén x értéke a 3. sorban történő kimenet előtt növekszik, míg utólagos inkrementálás esetén a 5. sorban történő kimenet után növekszik.

A $_GET és $_POST szuperglobális változók használata
Most már ismeri a PHP alapjait. Tud változtatókat használni, összefűzni és számításokat végrehajtani. Következő lépésként bemutatjuk a változók kulcsfontosságú szerepét a szkriptelésben.
A szkriptnyelvek egyik fontos funkciója, hogy képesek értékelni a felhasználói beviteleket és átvinni az értékeket egy másik szkriptbe. A PHP az adatok átviteléhez a $_GET és $_POST szuperglobális változókathasználja,amelyek előre definiált rendszer változók, és minden hatókörbenelérhetők. Az asszociatív tömbök (adatmezők)ként a $_GET és $_POST változók egy sor változót tárolnak karakterláncok formájában egy változóban.
A PHP tömbök több fiókos szekrényhez hasonlíthatók. Mindegyik fiók helyet biztosít az adatok tárolásához. Az egyes fiókok tartalmának áttekinthetőségének érdekében változó névvel jelöljük meg őket. A tömb típusától függően ez az azonosító lehet index vagy kulcs. Az indexelt tömbökben minden fiókhoz numerikus indexet rendelünk, míg az asszociatív tömbökben a fiókokat karakterlánc-alapú kulccsal jelöljük.
A $_GET és $_POST szuperglobálisok kulcsokként ábrázolt változók gyűjteményét foglalják magukban, lehetővé téve a hozzájuk tartozó értékek elérését. Erre részletesebben akkor fogunk kitérni, amikor a $_GET és $_POST szuperglobálisokat mélyebben megvizsgáljuk.
Adatátvitel a $_GET segítségével
A szuperglobális $_GET egy olyan változók tömbjét jelenti, amelyek URL-en keresztül kerülnek átadásra egy PHP szkriptnek.
Ha blogokon,onlineáruházakban ésinternetes fórumokon töltesz időt, akkor biztosan feltűnt már néhány furcsa URL-cím. Általában a következő sémának megfelelően vannak felépítve:
http://hostname/ordner/filename.php?variablenname=variablevalue
Egy blog esetében a séma így nézhet ki:
http://www.example-blog.com/index.php?id=1
Egy ilyen URL lebontása viszonylag egyszerű. Az example-blog.com domainnévvel rendelkező webszerveren található egy index.php nevű fájl. Ez a fájl dinamikus weboldalak készítésére szolgál, és általában HTML- és PHP-kódot tartalmaz, valamint hivatkozásokat külső sablonfájlokra és stíluslapokra – lényegében minden, a weboldal megjelenítéséhez szükséges komponenst.
Az id=1hozzáadása egy URL-hezegy gyakori módszer annak megállapítására, hogy egy weboldal dinamikus-e. Ez az URL-ben a kérdőjel (?) után található. Ez az összetevő HTTP lekérdezési karakterláncként ismert, és egy változót (id) és egy értéket (1) tartalmaz, amelyeket egy egyenlőségjel (=) köt össze. Az ilyen jellegű URL-paramétereket dinamikus weboldalak generálására, adatbázis-tartalom lekérésére és megfelelő sablonok elindítására használják.
A dinamikus weboldalak lehetővé teszik a tartalom és a megjelenítés szétválasztását. Bár az index.php tartalmazza a weboldal felépítésére vonatkozó információkat, azt még mindig tartalommal kell megtölteni. Ezeket általában egy adatbázisban tárolják, és az HTTP lekérdezési karakterlánc paramétereivel lehet hozzájuk férni. A példában az index.php URL-je átadja az id=1 paramétert. Ez meghatározza, hogy melyik tartalmat kell kiolvasni az adatbázisból és betölteni az index.php fájlba. Blog esetében ez lehet egy cikk azonosítója, fórum esetében egy adott bejegyzés, online áruház esetében pedig egy adott termék.
Ha egy URL több paramétert tartalmaz, ezeket ampersand (&) jelöléssel kötik össze.
www.example-blog.com/index.php?page=article&id=1
Az alábbiakban bemutatjuk, hogyan kell használni a $_GET-et. A példában nem szükséges adatbázist használni. A következő szkriptben a szuperglobális $_GET-et használjuk, hogy kiolvassuk afirstname és lastname változók értékeit egy HTTP lekérdezési karakterláncból, és beírjuk őket a PHP $variable1 és $variable2 változókba:
<?php
$variable1 = $_GET['firstname'];
$variable2 = $_GET['lastname'];
echo "Hello " . $variable1 . " " . $variable2 . "!";
?>phpA szkriptet a következő URL-cím hívja meg:
localhost/hello.php?firstname=John&lastname=Doe.
Afirstname=Johnandlastname=Doe paraméterek átadásra kerültek. Az értékek kimenete a korábbiakhoz hasonlóan az echo nyelvi konstrukcióval történik.

A $_GET segítségével történő adatátvitel elkerülhetetlenül azt eredményezi, hogy az átvitt adatok láthatóak lesznek a címsorban. Ez azt jelenti, hogy a továbbított paraméterek nyomon követhetők. Az előnye, hogy a változók hiperhivatkozásokban tárolhatók. Ezenkívül a felhasználóknak lehetőségük van a HTTP lekérdezési karakterláncot tartalmazó URL-eket könyvjelzőként elmenteni a böngészőjükben.
Azonban az a tény, hogy a GET paraméterek egyszerű szövegként szerepelnek az URL-ben, ezt a módszert összeegyeztethetetlenné teszi az érzékeny adatok, például az online űrlapok által generált adatok átvitelével. Ezenkívül a $_GET segítségével átvihető adatmennyiséget az URL-ek maximális hossza korlátozza.
Ezeket a korlátozásokat a HTTP POST módszerrel lehet megkerülni. Az ezzel a módszerrel továbbított adatok a $_POST szuperglobális változóban találhatók.
Adatátvitel $_POST segítségével
Míg a GET módszerben az adatok URL-paraméterként kerülnek továbbításra, a $_POST használatával az adatátvitel egy HTTP-kérés testében történik. Ez lehetővé teszi, hogy akár nagy mennyiségű adatot is továbbítsunk egyik szkriptből a másikba.
A HTTP POST módszer egyik központi alkalmazási területe a HTML űrlapadatok átvitele. Ezt egy hírlevél-előfizetés példáján fogjuk bemutatni.
Ehhez hozzon létre egy új PHP fájlt page1.php néven, és másolja be a következő kódblokkot:
<form method="post" action="page2.php" >
Please send your newsletter to: <br />
Your name: <input type="text" name="first name" /><br />
Your surname: <input type="text" name="lastname" /><br />
Your email address: <input type="text" name="email" /><br />
<input type="submit" value="Send form" />
</form>phpA HTML <form> elem űrlapok létrehozására szolgál. A kezdő tag két attribútumot tartalmaz:method és action. A method attribútummal meghatározza az átviteli módszert, ebben az esetben HTTP-POST. Az action attribútumban tárolja annak a szkriptnek az URL-jét, amely az összes, a következő beviteli mezőkben megadott adatot fogadja. A példa egy HTML űrlapot mutat be három beviteli elemmel (input type=„text”) és egy beküldés gombbal (input type=„submit”). A page2.php fájl van megadva az adatok címzettjeként.
A $_POST segítségével történő adatátvitel szemléltetéséhez egy egyszerű szkriptet használunk az űrlapadatok kiértékeléséhez, amely a beküldött értékeket PHP változókként tárolja és szöveges formában adja ki. Ehhez hozzon létre egy page2.php fájlt, és illessze be a következő programkódot:
<?php
$name = $_POST["name"];
$surname = $_POST["lastname"];
$email = $_POST["email"];
echo "Hello " . name . " " . $lastname . ", <br />
You have registered with the following e-mail address:" . $email . ".";
?>phpMentse el a két PHP fájlt a tesztkiszolgáló htdocs mappájába, és hívja meg a page1.php fájlt a böngészőjében a következő URL-ről: http://localhost/page1.php. A böngésző most megjeleníti a HTML űrlap interaktív webes felületét.

Írja be a hitelesítő adatokat, majd nyomja meg a Küldés gombot a változók egyik szkriptből a másikba történő átviteléhez. Miután megerősítette a page1.php beviteleit, a rendszer azonnal átirányítja a page2.php oldalra. A böngészőablakban megjelenik a szkript végrehajtásának eredménye a beküldött adatok alapján.

A page1.php beviteli mezőkön keresztül rögzített felhasználói beviteleket a page2.php a következő módon fogja lekérni:
$_POST["input field name"]
A $firstname = $_POST[„firstname”] sor a firstname beviteli mezőben szereplő adatokat lekérdezi, és a $firstname változóban tárolja. A $firstname változó az echo paranccsal karakterláncként kinyomtatható.
A PHP összehasonlító operátorok és az IF konstrukció használata
Eddig meghatároztuk a változókat, átadtuk őket egyik szkriptből a másikba, és karakterláncként adtuk ki őket. A következő lépésben megtanulod, hogyan kötheted a kódfragmentumok végrehajtását bizonyos feltételekhez.
Az if nyelvi konstrukció lehetővé teszi olyan szkriptek írását, amelyekben az utasítások csak akkor lépnek életbe, ha egy általad megadott feltétel teljesül, például a helyes jelszó megadása.
A feltételek a PHP-ben a következő alapvető keretrendszer szerint vannak meghatározva:
<?php
if(expression)
{
statement;
}
?>phpEz a következőképpen értelmezhető: Ha a kifejezésben leírt feltétel teljesül, akkor a utasítás végrehajtásra kerül. A feltétel akkor teljesül, ha az if konstrukció TRUE (igaz) eredményt ad vissza. Ellenkező esetben FALSE (hamis) eredménynek tekinthető. Ebben az esetben az utasítás kihagyásra kerül.
Általában az if konstrukció ellenőrzi, hogy egy változó értéke megfelel-e a feltételben meghatározottnak. Ez a vezérlőszerkezet általában összehasonlító operátorok alapján valósul meg.
Összehasonlító operátorok
Az összehasonlító operátorokat feltételek megfogalmazásához használják, hogy két argumentumot logikai kapcsolatba hozzanak, amely igaznak (TRUE) vagy hamisnak (FALSE) értékelhető. Amikor összehasonlító operátorokat használnak PHP vezérlő szerkezetekben, azokat két változóra alkalmazzák egy if konstrukció kifejezésében:
if ($a == $b)
{
statement;
}phpNyelvi szempontból a vezérlő szerkezet a következő: ha az $a változó egyenlő az $b változóval, akkor a utasításban meghatározott utasítások végrehajtásra kerülnek.
A PHP összehasonlító operátorok a C programozási nyelven alapulnak, és jelölésük jelentősen eltér a klasszikus matematikai szimbólumoktól. Az alábbi táblázatban található egy áttekintés.
| Összehasonlító operátor | Leírás | Feltétel |
|---|---|---|
| == | egyenlő | A feltétel akkor teljesül, ha $a és $b értéke megegyezik. |
| === | azonos | A feltétel akkor teljesül, ha $a és $b értéke megegyezik, és ugyanahhoz az adattípushoz tartoznak. Ezt egy példával lehet szemléltetni, amelyben egy egész számot (1) hasonlítunk össze egy karakterlánccal („1”): 1 == „1” //IGEN 1 === „1” //NEM Azoknál a feltételeknél, amelyeknél két változónak egyenlőnek kell lennie, a legjobb, ha mindig a relációs operátort === (azonos) használjuk. |
| != | nem egyenlő | A feltétel akkor teljesül, ha $a és $b értékei nem egyenlőek. |
| !== | nem azonos | A feltétel akkor teljesül, ha $a és $b értékei nem egyenlőek, vagy különböző adattípusokhoz tartoznak. |
| `< * | kisebb, mint | A feltétel akkor teljesül, ha az* $a érték kisebb, mint a $b* érték. |
| *>` | nagyobb, mint | A feltétel akkor teljesül, ha az* $a értéke nagyobb, mint az $b* értéke. |
| <= | kisebb vagy egyenlő | A feltétel akkor teljesül, ha $a értéke kisebb, mint $b értéke, vagy $a és $b értéke megegyezik. |
| >= | nagyobb vagy egyenlő | A feltétel akkor teljesül, ha $a értéke nagyobb, mint $b értéke, vagy $a és $b értéke megegyezik. |
Az alábbi szkript tisztázza ezt az ellenőrző szerkezetet. Két egész számot hasonlítunk össze. A < (kisebb) összehasonlító operátort használjuk:
<?php
$number1 = 10;
$number2 = 20;
if($number1 < $number2) {
echo "The condition is fulfilled";
}phpMeghatározzuk a $number1 és $number2 változókat, és hozzárendeljük hozzájuk az10 és 20 értékeket. Ezután feltételt állítunk be: ha $number1 kisebb, mint $number2, akkor az echo utasításban felsorolt karakterláncot kell kinyomtatni.
A szkript végrehajtásának eredménye tartalmazza a választ: 10 kisebb, mint 20. Az if konstrukció TRUE eredményt ad vissza. A feltétel teljesül.

Ha egy feltétel nem teljesül, akkor az if utasításhoz hozzáadhatjuk az else nyelvi konstrukciót, hogy egy if-else utasítást hozzunk létre PHP-ben:
<?php
if(condition a)
{
statement b;
}
else
{
statement c
}
?>phpEz a szkript ellenőrzi, hogy az a feltétel TRUE vagy FALSE értéket ad-e vissza. Ha az a feltétel teljesül (TRUE), akkor a b utasítás végrehajtásra kerül. Ha az a feltétel nem teljesül (FALSE), akkor a b utasítás kihagyásra kerül, és helyette a c utasítás végrehajtásra kerül.
Bővítsük kódunkat az else konstrukcióval, és cseréljük ki az összehasonlító operátort < (kisebb) a == (egyenlő) operátorra:
<?php
$number1 = 10;
$number2 = 20;
if($number1 == $number2)
{
echo "The condition is fulfilled";
}
else
{
echo "The condition is not fulfilled";
}
?>phpEzúttal az if konstrukció FALSE értéket ad vissza. A $number1 változó értéke nem egyezik meg a $number2 értékével. A feltétel nem teljesül. Így az if alatt felsorolt utasítás nem kerül végrehajtásra, hanem az else alatt definiált utasítás.

A kódfragmentum végrehajtásának két egyenlő értékhez való kötéséhez a PHP-ben kettős egyenlőségjelet (==) használnak. Az egyenlőségjelet (=) a változókhoz való értékek hozzárendeléséhez használják.
A feltételeket megtagadhatja úgy, hogy egy felkiáltójelet (!) tesz a kifejezés elé.
<?php
$number1 = 10;
$number2 = 20;
if ($number1 == $number2)
{
echo "The numbers are the same.";
}
if (!($number1 == $number2))
{
echo "The numbers are not equal.";
}
?>phpEz a példa kiemeli a $number1 == $number2 feltételt és annak tagadását. !($number1 == $number2) egyenértékű ($number1 != $number2) kifejezéssel.
Azifandelse gyakorlati alkalmazása a HTML-űrlapon alapuló jelszólekérdezés. Ezt a page1.php és page2.php PHP-fájlokkal szimulálhatjuk.
Nyissa meg az 1.php oldalt, és illessze be a következő kódot:
<form action="page2.php" method="post">
Please enter your password: <input type="password" name="password" />
<input type="submit" value="send" />
</form>phpA szerkezet egy korábban létrehozott űrlapnak felel meg. Ezúttal azonban egy beviteli mező elegendő: a jelszó lekérdezése. Mint korábban, a felhasználói bevitel a page2.php szkriptnek kerül továbbításra.
A következő kóddal úgy módosíthatjuk ezt, hogy a beírt jelszó összehasonlításra kerüljön a tárolt jelszóval:
<?php
$password = $_POST["password"];
if($password=="qwertz123")
{
echo "The password was correct";
}
else
{
echo "The password was incorrect";
}
?>phpA kód a következőképpen magyarázható: először a 2. sorban hozzárendelünk egy értéket a $password változóhoz, amelyet az HTTP POST módszerrel töltünk be. Ezután meghatározzuk a következő vezérlő szerkezetet: a 3. sorban található if konstrukció ellenőrzi, hogy a $password változó értéke megegyezik-e a qwertz123 karakterlánccal. Ha igen, akkor a The password was correct karakterlánc kerül kimenetre. Ha az if FALSE eredményt ad vissza, akkor a 7. sorban az else kerül használatra, és a The password was incorrect karakterlánc kerül kimenetre.
Most a http://localhost/page1.php URL-en keresztül hívjuk meg a page1.php szkriptet.

A böngésző megjeleníti a HTML jelszó kérés űrlapjának webes nézetét. Beírjuk a page2.php szkriptben definiált quertz123 jelszót, majd rákattintunk a Küldés gombra.

A webböngésző automatikusan átirányít minket a page2.php oldalra, míg az if vezérlőszerkezet összehasonlítja a bevitt adatokat a tárolt jelszóval. Az eredmény*„qwertz123 == qwertz123* TRUE”, majd a következő karakterláncot adja ki: A jelszó helyes volt.
Próbáld ki magad, hogy mi történik, ha más jelszót írsz be a beviteli mezőbe.
Logikai operátorok
Az if konstrukció kifejezésében összehasonlító operátorokkal meghatározott feltételek szükség esetén kombinálhatók ugyanazon kifejezésben szere plő más feltételekkel. A PHPaz AND és OR logikai operátorokat használja.
| Szoros kötelék | Gyenge kötés | Leírás | ||
|---|---|---|---|---|
| && | AND | Az operátorhoz kapcsolódó mindkét feltételnek IGAZNAK kell lennie. | ||
| *\ | \ | * | VAGY | Az operátorhoz kapcsolódó két feltétel közül csak az egyiknek kell igaznak lennie. |
A feltételek kombinálásához a PHP-ben szorosan és gyengén kötött logikai operátorokat használhat. A gyakorlatban a két írásmód egyikének önálló használata nem eredményez észrevehető különbséget. Ha mindkét írásmódot kombinálja, akkor azt fogja tapasztalni, hogy az OR és a || szorosabban kapcsolódik, mint az AND és az OR. Emellett az AND ésa && szorosabban kapcsolódik, mint az OR és a ||. Ez összehasonlítható a matematikai operátorokból ismert operátorok rangsorával (pl. pont a kötőjel előtt: *szorosabban kapcsolódik, mint +).
A jelszó lekérdezés egy gyakorlati példát kínál. Általában a bejelentkezési adatok egy titkos jelszót és egy felhasználónevet tartalmaznak. A bejelentkezés csak akkor sikeres, ha mindkét adat megegyezik a rendszerben tárolt adatokkal.
Most újra megnyitjuk a jelszó lekérdezési űrlapot a Page1.php fájlban, és hozzáadunk egy beviteli mezőt a felhasználónévhez:
<form action="page2.php" method="post">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<input type="submit" value="Submit" />
</shape>phpA következő lépésben módosítanunk kell az if konstrukció vezérlő szerkezetét. Az AND logikai operátort használjuk a jelszó lekérdezés feltételének összekapcsolására a felhasználónév lekérdezés feltételével.
<?php
$username = $_POST["username"];
$password = $_POST["password"];
if($username=="John Doe" AND $password=="qwertz123")
{
echo "Welcome to the internal area" . $username . "!";
}
else
{
echo "Access failed";
}
?>phpA page2.php szkriptünkben ausername és password értékeket megkapjuk és a $username és $password változókban tároljuk. Az if konstrukcióban lévő kifejezés most két feltételt tartalmaz, amelyeket az AND logikai operátor köt össze. Mindkét feltételnek teljesülnie kell (*username==„John Doe”*és $password==„qwertz123”**),hogyaz if TRUE eredményt adjon vissza.
Amikor a felhasználónevet a username beviteli mezőből lekérjük, azt az echo utasítással közvetlenül felhasználhatjuk a szöveges kimenetben. A Welcome to the internal area után a $username változó értéke következik. Ha a két feltétel közül bármelyik nem teljesül, a szöveges kimenet a következő lesz: Access failed.

A logikai operátorok tetszőlegesen kombinálhatók. Ne feledje, hogy az AND operátor elsőbbsége magasabb, mint az OR operátoré. A matematikai egyenletekhez hasonlóan a PHP is lehetővé teszi zárójelek használatát az elsőbbség jelzésére.
Hurok használata (while, for)
Néha egy szkriptnek többször is végig kell futnia egy bizonyos kódszakaszon, mielőtt a program többi kódját végrehajtja. A programozási nyelvek ehhez a ciklusok fogalmát használják. A PHP-ben háromféle ciklus létezik:
- while ciklusok
- do-while ciklusok
- for ciklusok
while ciklusok
A while ciklus a PHP legegyszerűbb ciklus típusa. Az alapszerkezete a következő:
while (condition)
{
loop step and other instructions
}phpA while ciklus utasítja a PHP-t, hogy hajtsa végre az alutasításokat, amíg a while feltétel teljesül. Ehhez a PHP értelmező minden ciklus elején ellenőrzi a feltételt. Az alárendelt kód végrehajtása csak akkor áll le, ha a while feltétel már nem teljesül.
Ezt az elvet egy egyszerű számláló szkript segítségével lehet szemléltetni:
<?php
$number = 1;
while ($number <= 10) {
echo $number++ . "<br />";
}
?>Az inkrementálás fogalmát a változókkal való számítás című részben mutattuk be. A következő szkriptben erre a fogalomra építünk, de egy kis csavarral. Ezúttal egy utólagos inkrementáló operátort használunk. Ez a ciklus minden egyes iterációja után 1-gyel növeli az $number egész szám változó értékét, közvetlenül az echo szöveg kimenet után. A while ciklus feltételét a következőképpen állítjuk be: $number nagyobb vagy egyenlő 10-nél. Ennek következtében az echo utasítás addig fog ismétlődni, amíg a $number értéke meghaladja a 10-et.

A szkript végrehajtásának eredménye egy karakterlánc, amely minden ciklusfutás előtt kinyomtatja a $number változó értékét, mielőtt az növekszik. Ennek eredményeként a szkript 1-től 10-ig számol, és abbahagyja a kód végrehajtását, amint a while feltétel már nem teljesül.
do-while ciklusok
A do-while ciklus felépítése hasonló a while cikluséhoz. Az egyetlen különbség az, hogy a feltétel nem minden ciklus elején, hanem csak a végén kerül ellenőrzésre. A do-while ciklus alapvető felépítése a következő:
do {
loop step and other instructions
}
while (condition)phpDo-while ciklusként programozva az előző szkript így nézne ki:
<?php
$number = 1;
do {
echo $number++ . "<br />";
}
while ($number <= 10);
?>phpEbben az esetben az eredmény ugyanaz marad. A do-while ciklus különlegessége, hogy legalább egyszer végrehajtásra kerül, még akkor is, ha a feltétel egyetlen ciklusban sem teljesül.
for ciklusok
Általában a PHP szkriptben található for ciklus ugyanazt a funkciót látja el, mint a while ciklus. A while ciklustól eltérően azonban a kezdőérték, a feltétel és az utasítás egy sorban van megírva, nem pedig három vagy több sorban. A for ciklus alapvető felépítése a következő:
for (start value; condition; loop step)
instructionsphpA fenti példa for ciklusként tömörebben is megírható:
<?php
for($number = 1; $number <= 10; $number++) {
echo $number . "<br /> ";
}
?>phpElőször a $number értékét 1-re állítjuk. Ezután a PHP ellenőrzi, hogy teljesül-e a $number <= 1 feltétel. Ha igen, akkor a ciklus folytatódik, és a ciklus alatt található utasítások végrehajtásra kerülnek (itt az utasítás az echo). Miután ez megtörtént, a ciklus lépései végrehajtásra kerülnek. Ebben az összefüggésben a pre- vagy post-inkrementum közötti választás irrelevánssá válik, mivel ez a lépés mindig a kimenet előtt történik. A cikluslépés befejezése után a ciklus következő iterációja kezdődik.
A for ciklusban a mag, a feltétel és a cikluslépés opcionális elemeknek számítanak. Elméletileg még az üres ciklusok is lehetségesek. Azonban az ilyen ciklusok feleslegesek lennének.
Alapvetően Önön múlik, hogy PHP szkripteit for vagy while ciklussal írja-e. A for ciklusok választása mellett azonban szól az az érv, hogy a for ciklusok használatával jobban átláthatja a ciklus keretadatait. Ezzel elkerülhető az a kockázat, hogy véletlenül örökös ciklust írjon, amely addig fut, amíg az értelmező memóriája meg nem telik. Az előző példára hivatkozva ez akkor fordulhat elő, ha elfelejti növelni a $number változó értékét.
Ha azonban a ciklust legalább egyszer végre kell hajtani, függetlenül a feltételtől, akkor a do-while ciklus a megfelelő választás.
breakandcontinue utasítások
A while, do-while vagy for ciklus végrehajtását abreak és continue utasítások befolyásolhatják. A break utasítással bármely ponton megszakíthatja a ciklus futását, a continue utasítással pedig kihagyhat egy ciklusátfutást. Mindkét utasítás az if utasítással egy feltételhez van kötve. Az alábbi példa a break utasítással ellátott számláló szkriptünket mutatja be:
<?php
for ($number = 1; $number <= 10; $number++) {
if ($number == 5) {
echo "If it is 5, we abort the script!";
break;
}
echo $number . "<br /> ";
}
?>phpA for ciklusban meghatároztuk, hogy a $number változó értékét minden ciklusban 1-gyel kell növelni, 1-től kezdve, amíg a változó el nem éri a 10-es értéket. A break segítségével idő előtt leállíthatjuk ezt a ciklust, amint a $number eléri az 5-ös értéket. Az echo nyelvi konstrukció csak az 1-től 4-ig terjedő számokat adja ki.

Az ötödik kör kimenetének kihagyásához, de a teljes ciklus folyamatának leállításához nem, a break utasítást continue-ra cseréljük:
<?php
for ($number=1; $number <= 10; $number++) {
if ($number == 5) {
echo "Let's skip the 5!<br />";
continue;
}
echo $number . "<br /> ";
}
?>phpAz 5-ös szám helyett a PHP az if alatt definiált We skip number 5! szöveges karakterláncot adja ki.

Fájlműveletek végrehajtása
A dinamikus webtartalom a tartalom és a megjelenítés szétválasztásának elvén alapul. Ennek elérése érdekében a PHP-hez hasonló szkriptnyelvek számos funkciót kínálnak, amelyek megkönnyítik a külső adatforrásokból származó tartalom zökkenőmentes integrálását a központi sablonfájlokba. A gyakorlatban ezek az adatforrások általában olyan adatbázisok, amelyeket MySQL-hez hasonló adatbázis-kezelő rendszerekkel kezelnek. A MySQL-tutorálónkban megtudhatja, hogyan működik ez.
Lehetőség van fájlokból származó adatok beillesztésére is. Az alábbiakban bemutatjuk, hogyan lehet fájlokat karakterláncként beolvasni egy PHP szkriptbe, és hogyan lehet a szkript szöveges kimenetét fájlokba menteni.
Fájlok olvasása
A fájlok tartalmának olvasásához a PHP különböző függvényekkel rendelkezik. Ezek közül a file() és a file_get_contents() különösen alkalmasak a feladat elvégzésére. Míg a file_get_contents() függvény a fájl teljes tartalmát egy karakterláncba olvassa be, addig a file() függvény a tartalmat tömbként menti. A tömb minden eleme a fájl egy-egy sorának felel meg. A file() használatával könnyebb az egyes sorokat külön-külön kinyomtatni.
A PHP fájlműveleteket az example.txt szövegfájlon fogjuk bemutatni, amelyet a tesztkiszolgálónk htdocs mappájába helyezünk el. A fájl négy sor dummy szöveget tartalmaz:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.
Először be kell olvasnunk a teljes fájlt karakterláncként. Ehhez a megfelelő fájl nevét paraméterként kell megadnunk a file_get_contents() függvénynek:
file_get_contents('example.txt')
Most lehetőségünk van a beolvasott karakterlánccal dolgozni. Például hozzárendelhetjük ezt egy változóhoz, és szövegként kinyomtathatjuk a webböngészőben:
<?php
$example = file_get_contents('example.txt');
echo $example;
?>php
A böngésző nézetében láthatjuk, hogy a szöveglánc bekezdések nélkül jelenik meg. Az eredeti fájl soremelkedései nem láthatók. Ez azért van, mert a webböngésző a szkript szövegkimenetét HTML-kódként értelmezi. A szövegszerkesztőkben megadott szóközök elvesznek.
Az eredeti szerkezet megőrzéséhez több lehetőség is rendelkezésre áll. A forrásfájlban manuálisan hozzáadhatja a sorváltás (br) HTML-kódját a keresés és csere funkcióval, a fájl tartalmát <pre> körülvéve, a CSS white-space: pre -wrap tulajdonságot beállítva, vagy az nl2br() függvényt használva, amely jelzi a PHP-nek, hogy automatikusan konvertálja a sorváltásokat (új sorokat) HTML-sorváltásokká (szünetekké). Íme a kód:
<?php
$example = file_get_contents('example.txt');
echo nl2br($example);
?>phpHa az echo nyelvi konstrukciót nl2br()-rel kombinálva használjuk, a PHP minden új sor előtt HTML-sorválasztót illeszt be.

A fájl sorainak egyenkénti kimenetére a file() függvényt használhatja. Ez beolvassa a fájlt, az összes sort 0-tól kezdve számozza, és tartalmukat tömb elemeiként menti. Ha ezt alkalmazzuk példánkra, a következő eredményt kapjuk:
[0] = Lorem ipsum dolor sit amet, consectetuer adipiscing elit
[1] = Aenean commodo ligula eget dolor. Aenean massa.
[2] = Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
[3] = Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem
Az echo parancs segítségével a kívánt tartalom kinyomtatásához csak meg kell adni a kívánt sor számát. Például a következő szkript csak az example.txt fájl első sorát jeleníti meg a böngészőben:
<?php
$example = file("example.txt");
echo $example [0];
?>php
Fájlok írása
A PHP nem csupán fájlok olvasására alkalmas, hanem fájlok olvasására, létrehozására és módosítására is.
A file_put_contents() függvény használata erre jó példa. Csak két paramétert igényel: a célfájl nevét és az adatokat, amelyek lehetnek karakterláncok vagy tömbök. Az alábbi szkriptben egy új , test.txt nevű fájl jön létre, amely a „This is a test!” karakterláncot tartalmazza. A \r\n beillesztése biztosítja a sorok szétválasztását a fájlban.
<?php
file_put_contents("test.txt", "This is a test! \r\n");
echo "test.txt has been created!";
?>php
Mivel a file_put_contents nem ad ki semmilyen eredményt a böngészőnek, hozzáadunk egy echo utasítást, amely megmondja nekünk, hogy milyen művelet történik.
Ha a célmappában már létezik azonos nevű fájl, akkor az felülíródik. Ezt megakadályozhatja a FILE_APPEND paraméter beállításával:
<?php
file_put_contents("test.txt","The test was successful! \r\n", FILE_APPEND);
echo "test.txt has been updated!";
?>phpA file_put_contents() függvény FILE_APPEND paraméterrel történő használatával az új tartalom a meglévő tartalomhoz lesz hozzáfűzve.

A PHP által a célfájlba írt tartalom nem feltétlenül kell, hogy a szkriptben legyen definiálva. Alternatív megoldásként átvihet tartalmat egyik fájlból a másikba. Az alábbi szkript beolvassa az example.txt fájl tartalmát, és beilleszti a test.txt fájlba:
<?php
$example = file_get_contents("example.txt");
file_put_contents("test.txt", $example, FILE_APPEND);
echo "test.txt has been updated!";
?>php