PHP I. Alapok
Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek: –Szerver oldali programozás (web) –Parancssori programozás –Kliens oldal - GUI
Szerver oldali programozás Webszerver: –Apache HTTP Server PHP értelmező (interpreter) modul: –PHP szkript HTML Adatbázis (opcionális): –MySQL, PostgreSQL, Oracle, IBM DB2, stb. WAMP: –Apache + MySQL + PHP
Szerver oldali programozás Miért? Példa: forgamlazott termékek megjelenítése, információk (ár, kép, stb) Programozás nélkül, sima HTML: –1 termék 1 HTML; az oldalak 90%-ban megegyeznek –Új termék, új oldal –Termék törlése, oldal törlése
PHP a weboldalban PHP szkript jelölései: – – – HTML-be ágyazva: –
Alapok Parancs vége;-vel –print ”Hello world”; –echo ”Hello world”; Megjegyzések: –// megjegyzés –# megjegyzés –/* megjegyzés */
Változók Változó definiálása: –$ + választott név –Név: betűk, számok, _ jel; számmal nem kezdődhet –Pl.: $szam1 = 23; $_myvar = 19; Referencia: $elso = ’Hello world!’; $masodik = &$elso;
Típusok Gyengén típusos nyelv: –Változó típusát nem kell megadni –Típus = kiegészítő információ (értelmező rendeli az adathoz) –„Rugalmas változók” Pl. egyszer szám, egyszer szöveg Zavar forrása lehet
Típusok Logikai (boolean, bool); $v = false; Egész (integer, int): $v = 12; Lebegőpontos (double, float): $v = 3.14; Sztring (string): $v = ”PHP”; $w = ’PHP’; Objektum (object) Tömb (array) Erőforrás (resource); pl adatbázis elérés NULL
Változók Változó változó –$a = ”valtozo”; –$$a = ”Hello world”; –print $valtozo; // Hello world szöveget írja ki Sztring ’’ és ”” –$a = 32; –print ’$a’; print ”$a”; // a ”” kiértékeli a változót Állandók –define(”ALLANDO”, 3.14);
Feladatok <?php $a = ’Pisti’; $b = &$a; $b = ’Józsi’; print $a; ?> Változók: <?php $a = 3.14; print gettype($a); print ’ ’; var_dump($a); print ’ ’; // if (is_int($a)) { ?> Típus vizsgálata:
Típus átalakítások Automatikus: –$a = ”20” + ”30”; // az eredmény 70 lesz settype() függvény: –settype($a, string); Zárójellel: –$a = 3.14; –$b = (int) $a; Függvényekkel: –$b = doubleval($a); // intval(), strval()
Feladatok Próbáljuk ki a típusátalakításokat, majd használjuk a var_dump() függvényt! Adjunk össze karakterláncokat –$a = ”156cm” + ”104cm”;
Műveletek Értékadás (=) $a = 34; Aritmetikai +, -, /, *, % Összefűzés (.) $a = ’Hello’. ’ world’; Összetett értékadás +=, -=, /=, *=, %=,.= Összehasonlító ==, !=, ===, >, =, <= Logikai !, ||, or, &&, and, xor Növelés, csökkentés $x++, $x--, ++$x, --$x Végrehajtás (engedély): $output = `dir`;
Műveletek Hiba vezerlő –$a or die(’Hiba!’); Bitenkénti logikai –&, |, ^, ~, > Tömb –+, == (azonos elemek), ===, !=, <>, !===
Precedenciák ++, --, (típusátalakítás) /, *, % +, -, > ==, ===, != && || =, +=, -=, /=, *= %=,.= and xor or
Feltétel vizsgálat if (feltétel) { } else if (feltétel) { } else { } switch (kifejezés) { case érték1: // utasítások break; case érték2: // utasítások break; default: } $a = true; $b = ($a)?10:20;
Ciklusok while (feltétel) { } do { } while (feltétel); for ($i=0; $i<100; $i++) { } Kilépés ciklusból: break; Következő iteráció: continue; foreach ($tomb as $e) { }
PHP kód beillesztés require(path); // hibát ad ha nem létezik include(path); // nem ad hibát require_once(path); // egyszer illeszti be include_once(path); // egyszer illeszti be
Feladatok Írjunk szkriptet, ami 0-tól 100-ig kiírja a 2- vel osztható egész számokat (a vizsgálathoz használjuk a % operátort) Írjuk át úgy, hogy tetszőleges számmal oszthatóságot vizsgáljon. Ez a szám a szkriptben legyen egy változó.
Függvények function fuggveny($param1, $param2) { return $ret; } function add($a, $b) { $result = $a + $b; return $result; }
Függvények Dinamikus függvényhívás: –$muvelet = ”add”; –$s = $muvelet(10, 5); Változók elérése függvényben: –function fuggveny() { global $kulso_valtozo; Statikus változók (static): –Egyszer inicializálódnak
Függvények Alapértelmezett paraméter érték –function fuggveny($p1, $p2 = 10) { Paraméter hivatkozások –function fuggveny(&$param) { $param += 10; –} Névtelen függvény –$add = create_function(’$a,$b’, ’return $a+$b;’);
Feladatok Készítsünk függvényt, ami paraméterként adott 5 db változót HTML táblázatba foglal, majd visszatér ezzel a HTML kóddal. Írjuk ki a visszatért értéket. Készítsünk függvényt, ami azt számolja, hogy hányszor hívtuk meg (static változó) és visszatér ezzel az értékkel. Hívjuk meg párszor és írjuk ki az eredményt.