include('head.txt');?>
/*======================================================================*\ Nehany automatizalt folyamat \*======================================================================*/ aswc_counter(); // Szamlalo aswc_oldallekeres('w'); // functions.inc.php if (aswc_is_user($_SESSION['loggedin_type'])) { include 'toolbar.inc.php'; } ?>
|
|||||||
|
|||||||
Témaköreink[ 3D Studio MAX ] [ C,C++ ] [ CSS ] [ HTML/XHTML ] [ Online Marketing ] [ Photoshop ] [ PHP ] [ Putra Writer ] [ Webdesign ] Statisztika
|
PHP -> Változók és vezérlési szerkezetek
Változók és vezérlési szerkezetek Az első cikkben egyetlen parancsot ismertünk meg, az az ECHO volt. Az echo segítségével lehet a weblapra írni. Kezdésként végig kell néznünk a legfontosabb parancsokat, szerkezeti egységeket, változótípusokat. 1. VáltozókMinden változót a $ jellel kezdünk (pl. $valtozo="béka"; echo $valtozo;). Kivételt képeznek ez alól a konstansok (pl. define("konstans","123456"); echo konstans;). Ha a nyelv kikényszeríti a típushoz tartózó szabályok végrehajtását (ez általában a típuskonverziók végrehajtását jelenti, lehetőleg információ vesztés nélkül), akkor a nyelv erősen típusos, ellenkező esetben gyengén típusos. Nos a PHP az egy gyengén típusos nyelv. A változókat nem kell előzetesen deklarálni (létrehozni, és megmondani a leendő típusát), és egyazon változó felvehet tetszőleges típusú értéket. A típuskonverzió sem igényel (minden esetben) külön eljárást. $a=12; $b=$a." lepke száll a réten."; A PHP rendszer az alábbi alaptípusokat támogatja: - egész --> $a = -455; - valós --> $b = 98.56; - karakterlánc --> $c = "alma"; A szöveges változók lehetnek egy vagy több karakter hosszúak. A szöveges kifejezéseknél két szöveges kifejezés összefűzhető a "." (pont) operátorral: $b = "fa"; $c = "alma" . $b ; // almafa A változók a skalár érték mellett tömb típusúak is lehetnek. A tömb kezelés egyedi vonása, hogy tömb létrehozása az elemeinek a megadásával történik, nem előzetes helyfoglalással. A tömbelemek indexe az egész típusú értékek mellett lehet asszociatív, mikor egy szöveges kifejezés adja meg az index értékeket: $b[1] = 3; $b[2] = "lepke"; $b["alma"] = 4; Többdimenziós tömbök esetében a C szintaktikát követve minden dimenziónál külön szögletes zárójelben adjuk meg az indexértéket: $a[1][2] = 3; A változókat, mint a példákból is láthattuk, nem kell előre definiálni, s típusukat ezért az értékadás határozza meg. Azonban a PHP figyelmeztetést küldd, ha egy olyan változót próbálunk használni, aminek előzetesen még nem adtunk értéket. $a=1; $c=$b+$a; // ekkor figyelmeztet, hogy nem ismeri $b-t Ellenőrizhetjük, hogy az adott változót használtuk-e már: $a=1; $b=2; if (isset($c)) $d=$c+$b+$a; // az isset-tel megvizsgáltuk, hogy létezik-e $c, ha létezik, használjuk else $d=$b+$a; // ha nem létezik, nem használjuk Egyazon változóhoz egymás után más és más típusú kifejezés is rendelhető, ezért annak típusa a program futása során dinamikusan, menet közben megváltozhat. $a=5; $a=$a.". elem"; // 5. elem Változók összefűzésére több lehetőség is kínálkozik: $szoveg="van "; // van $szoveg=$szoveg."hátralévő "; // van hátralévő $szoveg="$szoveg életed "; // van hátralévő életed $szoveg.="első napja."; // van hátralévő életed első napja $szoveg=."Ma "; // Ma van hátralévő életed első napja 2. Vezérlőszerkezetek2.1. Elágazások, feltételek2.1.1. IFA változók taglalásában már használtunk egy IF–et, hogy eldöntsük, az adott változó létezik-e. Az If működése: if (feltétel) { // ha a feltétel kiértékelése igaz # utasítás(ok) } elseif (feltétel 2) { // ha az előző nem igaz, de ez igaz # utasítás(ok) } else { // ha egyik sem volt igaz # utasítás(ok) } Az IF vezérlőszerkezet roppant egyszerű, és minden programozási nyelvben megtalálható. 2.1.2. SWITCHA SWITCH kifejezés pontos megértéséhez a php.net hivatalos manual-ját vettem alapul! A switch kifejezés hasonló egy sereg IF kifejezéshez, ahol a kifejezésekben ugyanaz szerepel. Gyakori, hogy ugyanazt a változót (vagy kifejezést) kell összehasonlítani több különböző értékkel, és más-más kódot végrehajtani a változó (kifejezés) értékétől függően. Erre való a switch. Megjegyzés: Néhány más nyelvvel ellentétben, a continue utasítás használható switch-ben és ugyanúgy működik mint a break. Ha van egy switch egy cikluson belül, és a ciklusban szeretnél továbblépni, a continue parancsot kell kiadnod. Nézzünk egy páldát IF-fel: if ($i == 0) { echo "i most 0"; } elseif ($i == 1) { echo "i most 1"; } elseif ($i == 2) { echo "i most 2"; } Ugyanez switch-el: switch ($i) { case 0: echo "i most 0"; break; case 1: echo "i most 1"; break; case 2: echo "i most 2"; break; } A switch-ben nem csak számok, hanem string-ek is ellenőrizhetők: switch ($string) { case "alma": echo "most alma"; break; case "körte": echo "most körte"; break; } A hibák elkerülése végett fontos megérteni, hogy hogyan kerül végrehajtásra a switch szerkezet. A switch utasításról utasításra hajtódik végre. Nem hajtódik végre semmilyen utasítás, csak akkor, ha egy olyan case kifejezést talál a PHP, amely egyezik a switch kifejezés értékével. Ezután a PHP addig folytatja az utasítások végrehajtását, amíg el nem éri a switch blokk végét, vagy nem találkozik egy break utasítással. FONTOS! Ha nincs break egy case-hez tartozó utasítás(sorozat) végén, akkor a PHP végrehajtja a soron következő case-hez tartozó utasításokat is! A switch kifejezésben a feltétel csak egyszer értékelődik ki és a kapott eredmény lesz összehasonlítva a case kifejezések mindegyikével. Ha elseif kifejezéseket használsz, a kifejezések újra és újra kiértékelődnek. (és újra és újra be kell gépelni. Ez nem csak fárasztó, de hiba forrása is lehet.) Ha a kifejezés bonyolult, vagy egy ciklus belsejében van, a switch a gyorsabb. Egy különleges eset a default [alapértelmezett] címke. Ez a címke bármivel egyezik, amivel a korábbi case elemek nem egyeztek. Ennek kell az utolsó elemnek lennie. Például: switch ($i) { case 0: echo "i most 0"; break; case 1: echo "i most 1"; break; case 2: echo "i most 2"; break; default: echo "i se nem 0, se nem 1, se nem 2"; } A case kifejezés tetszőleges kifejezés, aminek egyszerű a típusa, vagyis egész vagy lebegőpontos szám, vagy string. Tömbök és objektumok itt nem használhatók, csakis egy-egy elemük ill. változójuk egyszerű típusként. (pl.: $tomb['elem']) 2.2. Ciklusok2.2.1. WHILEA legegyszerűbb ciklus: WHILE. Ez egy előltesztelős ciklus. A PHP mindaddig ismétli az utasításokat, amíg a feltétel kiértékelése igaz. $a=3; while (strlen($a) < 3) { $a="0".$a; } Ez egy remek példa, mert egyszerre 2 különböző témára is illik. Elsősorban most a while ciklus miatt nézzük, ám ehhez egy másik tulajdonágát is tudni kell, az pedig az strlen() függvény bemutatása. Az strlen() függvény magadja a változó hosszát, azaz, hogy hány karakterből áll. $apple="alma"; $length=strlen($apple); // $length = 4 Térjünk vissz a while magyarázatára. A fenti kód értelmében a PHP addig fog futni, amíg $a hossza kisebb, mint 3, tehát a futás befejeztével $a 3 karakter hosszú lesz, jelen esetben "3" helyett "003" lesz az értéke. 2.2.2. DO-WHILEA while párjának tekinthető a DO-WHILE ciklus, mely ellentétben a while-al, hátultesztelős, azaz előbb lefuttatja az utasításokat, majd utána értékeli ki a feltételt. $i = 0; do { echo(""); } while ($i > 1); Lévén, hogy a do-while (Pascalban repeat until) hátul tesztelős, ezért egyszer tuti lefut. És mivel a példámban $i > 1 nem teljesül, mert 0 nem nagyobb 1-nél, ezért az első futás után ki is lép a ciklusból. A do-while ciklus a gyakorlatban nem igazán használatos. 2.2.3. FORA leggyakrabban használt ciklus, a fix lépésszámú ciklus, azaz a FOR. Ez a ciklus fix darabszámszor fogja lefuttatni a kódot. Tömbökön végigszaladni legtöbbször ezzel a legegyszerűbb. for ($i=0; $i<count($tomb); $++) { echo "A tömb $i. eleme: ".$tomb[$i]."<br/>"; } Itt megtanultunk még egy fontos függvényt, ez a count(), mellyel egy tömb elemszámát lehet megtudni. 2.2.4. FOREACHA PHP 4-től a Perlhez és más nyelvekhez hasonlóan létezik az ún. FOREACH szerkezet is. Ez jól használható eszközt ad a tömbökön végzett iterációkhoz. Más típusú vagy inicializálatlan változóra nem lehet használni, azokra hibát jelez. Két szintaxisa létezik, a második egy apró, de annál hasznosabb kiegészítéssel nyújt többet az elsőhöz képest. // egyszerű foreach ($tomb as $ertek) { # utasítások } // bővített foreach ($tomb as $kulcs => $ertek) { # utasítások } Az első forma végigmegy a $tomb tömbön. Minden alkalommal az aktuális elem értéke a $ertek változóba kerül, és a belső tömb mutató növelésre kerül. (A következő alkalommal tehát a soron következő elemet fogja venni). A második forma ugyanezt végzi el, de az aktuális elem kulcsa a $kulcs változóba kerül. $tomb["nev"]="Mágus"; $tomb["e-mail"]="magus@netoktato.hu"; foreach ($tomb as $kulcs => $ertek) { echo "$kulcs = $ertek<br/>"; } A program futását követően a következőt kapjuk: nev = Mágus<br/> e-mail = magus@netoktato.hu<br/> 2.2.5. BREAK és CONTINUEA FOR, FOREACH, WHILE, DO-WHILE és SWITCH szerkezetekből kilépni idő előtt a BREAK utasítással lehet. A break elfogad egy elhagyható szám paramétert, amely megadja, hogy hány egymásba ágyazott struktúrából kell egyszerre 'kiugrani'. A CONTINUE ciklusok belsejében használható arra, hogy átugorjuk az aktuális iteráció hátralevő részét, és a végrehajtást a feltétel-kiértékeléssel, majd a következő iterációval folytassuk. A PHP-ben a switch utasítást a continue definíciója miatt a ciklus utasítások közé sorolják. A continue elfogad egy elhagyható szám paramétert, amely megadja, hogy hány egymásba ágyazott struktúrának a hátralévő részét kell átugrani. 3. AzonosítóEhhez a cikkhez most nem tartozik letölthető anyag. 4. Előzetes a 3. cikkbőlAz első cikkben megismerkedtünk a PHP nyelv rövid történetével, most már tudjuk, mi fán terem a PHP, valamint személyi számítógépünkből webszervert varázsoltunk. A második cikkben megismerkedtünk, az általánosan ismert vezérlési szerkezetek, ciklusok miként néznek ki a PHP-ban, milyen változókat és miként kezelhetünk. Mostani, harmadik (egyben a regisztráció nélkül megtekinthetőek közül az utolsó) cikkünkben rátérünk a tényleges programozásra. A parancsok részletezésére csak végszükség esetén térek csak ki, ez ügyben mindenkinek ajánlom a PHP hivatalos manual-ját: http://www.php.net/manual/hu/index.php. Elsőként tekintsük át, mit is szeretnénk elkészíteni, ahhoz milyen előismeretek, valamint milyen alkotóelemek szükségesek, és mindezt milyen ütemben kívánjuk elvégezni. A ... Folytatás a következő cikkben! 2007.03.03. Mágus
|
Hello VendégAz oktatóanyagok olvasásához be kell jelentkezned.
Szeretnék regisztrálni. Elfelejtettem a jelszavam!Kiküldöm magamnak! |