PHP nyelv Mari Dániel.

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Tananyag: konzultáció
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
DFAN-INF-524 és DFAL-INF-524 kurzus hallgatói számára
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Objective- C Bereczki Gréta Tamara
3. előadás (2005. március 1.) Utasítások, tömbök
JavaScript.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Programozás II. 3. Gyakorlat C++ alapok.
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
A C++ programozási nyelvSoós Sándor 1/15 C++ programozási nyelv Gyakorlat hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1.5 Programozó matematikus szak 2003/2004-es tanév II. félév.
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
PHP Webprogramozás alapjai
Web-grafika (VRML) 10. gyakorlat Kereszty Gábor. Script típusok Elemi típusok: szám: egész vagy lebegőpontos – int / float – 1 / 1.1 string: ‘Hello World!’
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Szombathely Dinamikus WEB programozás: PHP és JSP.
Vizuális és web programozás II.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely.
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:
Programozás Az adatokról C# -ban.
C nyelv utasításai.
A PHP (PHP: Hypertext Preprocessor) nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. Emiatt.
A JavaScript bemutatása
Farkas Tamás (blaq) PHP alapok Farkas Tamás (blaq)
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Alprogramok deklarációja, definíciója és meghívása Páll Boglárka.
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
Objektum orientált programozás a gyakorlatban
Készítette: Csíki Gyula
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Készítette: Lipp Marcell
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Java programozási nyelv Metódusok
Objektum orientált programozás
Webprogramozó tanfolyam
Objektum orientált programozás
A Visual Basic nyelvi elemei
Operátorok Vezérlési szerkezetek Gyakorlás
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
Illés Zoltán ELTE Informatikai Kar
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Excel programozás (makró)
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Script nyelvek előadás
Script nyelvek előadás
Alapok.
Programozási alapismeretek
Gépészeti informatika (BMEGEMIBXGI)
Script nyelvek előadás
Excel programozás (makró)
Programozás C# -ban Elágazások.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
A CLIPS keretrendszer
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
Előadás másolata:

PHP nyelv Mari Dániel

Miről lesz szó? PHP nyelvről általánosan Történelme PHP használata Nyelvi elemek Típusok, típuskonverziók, változók, … Vezérlési szerkezetek Függvények

A PHP nyelv Szkript nyelv Dinamikus weboldalak készítése, HTML-be ágyazható Szerver oldali futtatás Interpretált nyelv Imperatív és objektumelvű programozás támogatása Kompatibilis a legtöbb mai szerverrel Könnyen tanulható Hatékony adatbázis kezelés Nyílt forráskódú Ingyenes

Történelem 1994 – megszületése (Rasmus Lerdorf) PHP = Personal Home Page 1995 – PHP első nyilvános változata 1997: PHP 3 Erős kiterjeszthetőség Objektum orientáltság megjelenése Hatékonyabb nyelvi elemek, szintaxis 1999: Zend Engine -> 2000: PHP 4 2004 – PHP 5 Zend Engine II Fejlettebb OO, jobb teljesítmény

PHP használata A kód a szerveren fut Szerveroldali, parancssori, grafikus alkalmazás .php kiterjesztés Nincs főprogram Install: XAMPP (LAMP, WAMP..) X-Cross platform, A-Apache, M-MySQL, P-PHP, P-Perl

PHP- HTML A PHP HTML-be ágyazható <?php //kód ?> <? ?> - Nem ajánlott ezt használni! Általában: <?=$valtozo?> == <?php echo $valtozo; ?> <script language=”php”> </script> <% //ASP stílus is megy %> Pl: <?php echo „Hello World” ?>

Hello World <html> <head> <title> Hello World </title> </head> <body> <?php echo”Hello World”; ?> </body> </html>

Nyelvi elemek ASCII karakterkészlet Whitespace-ek választják el a lexikális elemeket Az utasításokat pontosvessző (';') választja el A nyelv case sensitive (kiv.: true,false, null, …) Megjegyzések // vagy # - egysoros /* */ - többsoros

Nyelvi elemek II Azonosítók Deklarálásra nincs szükség Változó $-al kezdődik Deklarálásra nincs szükség Első alkalommal amikor értéket adunk egy változónak létrejön Érték nélkül: NULL Neve betűt, számot és ‚_’-t tartalmazhat Többféle numerikus literál is előfordulhat $a1 = 1234; # decimális szám $a2 = -123; # negatív egész szám $a3 = 0123; # oktális egész szám (decimálisan 83) $a4 = 0x12; # hexadecimális egész szám (decimálisan 18) $a5 = 12.3; # lebegőpontos tört szám $a6 = 1.23e2; # másik megadási mód $a7 = 5.8E-1; # 0.58 másik megadása Sztringliterálokat ” illetve ’ idézőjelekkel határoljuk. ” $valtozo ” - kiértékelődik Speciális karaktereket \ jellel írhatunk le (p.: \n)

Típusok, típusszerkezetek Skalár Integer, Boolean, Float, Double, String Összetett típusok Array, Class Speciális típusok Null Resource Pl: adatbázis link Gyengén típusos nyelv-> a változó a típusát az értékadás alapján kapja $a=5; //a integer $a=”10” //a string

Típuskonverzió Műveletek végrehajtásakor automatikus konverzió (float előnyben aztán integer) $a=”10”; $a+=2; //$a integer és értéke 12 $a+=3.5; //$a float és értéke 15.5 $a+=”12 alma”; //$a float és értéke 27.5 $a=5+”10 valami”; //$a integer és értéke 15 C-hez hasonlóan: (típus) $a=5; $b=(boolean)$a $s=”$a”; //ekvivalens $s=(string)$a;-val settype($var, $type) $s=”5 sor”; settype($s, ”integer”); //$s integer és értéke 5

Tömbök Kulcs - érték párok Létrehozás Többdimenziós Kulcs Integer és String lehet Létrehozás Explicit: $t[3]=5; $t = „tomb”; Array() segítségével $t = array(1,2,3,4); $t = array(0=>1, 1=>2, 2=>3, 3=>4); Többdimenziós $t[][]; Asszociatív: $[„kulcs”]=„ertek”;

Tömbök II Tömb végéhez adás: $t[] = „vegere”; Count(); Sok tömb művelet Array_merge – két tömb egyesítése Array_push – elemek hozzáadása Array_shift – első elem eltávolítása Sort – tömb rendezése Asort – érték szerint rendezés Ksort – kulcs szerint rendezés A tömbök használhatóak más adatszerkezetekként is Pl. veremként: array_push(), array_pop(), stb.

Példa – count() Jó: Rossz: Megoldás: foreach $felhasznalok = array ("Berci", "Marci", "Ödön", "Télapó"); $felhasznalok[count($felhasznalok)-1]; Rossz: $tomb = array("Ecc, pecc"); // Egyelemű tömb! $tomb[2] = "kimehetsz"; print "Az utolsó elem: " . $tomb[count($tomb)-1]; Megoldás: foreach

Operátorok Aritmetikai: x + y Értékadó: x = y ++x, x++, --x, x-- +, -, *, /, %, -(negálás), .(konkatenáció) Értékadó: x = y +=, -=, *=, /=, %=, .= ++x, x++, --x, x-- Összehasonlító: x==y !=(<>), ===, !==, >, >=, <=, < Logikai: x and y or, xor, &&, ||, ! Különleges operátor az instanceof, amely típusba tartozásra tesztel Végrehajtás operátor pl.: `ls`

Operátorok II Tömb operátorok: Unió (x+y): teljes x és hozzá y azon kulcsai, melyek nincsenek x-ben Összehasonlítás (x==y): $a = array(”alma", ”korte"); $b = array(1 => ”korte", "0" => ”alma"); ($a == $b); // bool(true) ($a === $b); // bool(false) !=, <>, !==

Változók Az első használatkor jönnek létre Nem kell típust megadni az isset(<név>)függvény megadja, hogy tárol-e értéket értékét törölni lehet az unset(<név>)függvénnyel Előre definiált $GLOBALS-a globális változók nevei $_SERVER–változók, amelyeket a webszerver állított be $_GET-HTTP GET kérés által létrehozott változók $_POST-HTTP POST kérés által létrehozott változók $_COOKIE-HTTP sütikből (cookies) származó változók $_FILES-HTTP post fájlfeltöltés által létrejövő változók $_REQUEST-HTTP GET, POST és COOKIE bementekből származó változók $_SESSION-a szkript munkamanetéhez rendelt változók

Konstansok Megadásuk: define(<név>,<érték>) A konstansok mindenhonnan elérhetőek Csak skalár lehet konstans!

Láthatóság PHP 4 típust különböztet meg: Lokális Statikus Lokális, globális, statikus, paraméter Lokális Csak az aktuális függvényen belül érhető el Törlődik ha a függvény működése befejeződik Statikus Lokális változók, melyek megőrzésre kerülnek a függvényük befejeztével Amikor a függvény újra meghívódik az előző értékre fog emlékezni a program

Láthatóság II Globális Paraméter Minden függvényeken kívül bevezetett változó Függvényeken kívül bárhol elérhetőek Függvényeken belül: global kulcsszóval $a=10; Function test() { echo global $a; } $GLOBALS tömb: bárhol elérhető asszociatív tömb, mely a globális változókat tárolja $GLOBALS[‘a’] = global $a Paraméter Lokális változó mely a hívó kódból kapja az értékét

Vezérlési szerkezetek Programblokk: { … } Használhatjuk a „:”-ot, ekkor kell egy lezárás a végére Pl: <?php if($user.loggedIn()): ?> <h3>Üdvözlöm kedves <?=$user.name?> <?php endif; ?> Elágazások Egyágú: if (feltétel) utasítás; else utasítás; Többágú: switch(érték) { case érték: utasítások; break; default: utasítások; }

Vezérlési szerkezetek II Ciklusok: While(feltétel) {utasítások} Do { utasítások } while (feltétel); For(kezdőérték;feltétel;inkrementálás) {utasítások} Foreach(tömb as változó) { utasítások} Foreach (tömb as kulcs=>érték) { utasítások} Vezérlésátadó utasítások: Break -> ciklus terminálása Switch is ciklusnak minősül! Continue -> ciklus léptetése

Függvények Function szóval vezetjük be Visszatérési értéket a return-el jelöljük Pl: function osszead($a,$b) { return $a+$b;} Meghívása: osszead(4,5); Paramétereknek lehet kezdőértéket adni (nem kell típust megadni) Változó számú paraméter is használható $db=func_num_args(); $i = func_get_args(0-tól (db-1)-ig); Összetett adat is visszaadható Nincs lehetőség túlterhelésre, felüldefiniálásra Minden függvény globális

Függvények II Feltételes definiálás: Dinamikus függvények If(feltétel) { function fv() {echo „A”;}} else { function fv() {echo „B”;}} Dinamikus függvények Function kisebb($a,$b)… $fv = „kisebb”; echo $fv(1,2); $fv = „nagyobb”;… $fv = create_function(‚$a,$b’ , ’return $a+$b;’);

Függvények III Paraméterátadás módja: Minden függvény globális Alapértelmezetten érték szerinti paraméterátadás Lehetőségünk van cím szerinti paraméterátadásra, az „&” jel használatával Function novel(&$szam) {$szam++;} Minden függvény globális function kul_fv() { function bel_fv() { echo "Engem ne hívj, amíg kul_fv()-t nem hívtad!\n"; } bel_fv(); //Fatal error: Call to undefined function bel_fv() kul_fv(); bel_fv(); kul_fv(); //Fatal error: Cannot redeclare bel_fv()

Köszönöm a figyelmet!