Web-technológia PHP-vel



Hasonló dokumentumok
Osztályok. 4. gyakorlat

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

OOP: Java 8.Gy: Abstract osztályok, interfészek

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Java III. I I. Osztálydefiníció (Bevezetés)

JAVA PROGRAMOZÁS 2.ELŐADÁS

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Java II. I A Java programozási nyelv alapelemei

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Java III. I I. Osztálydefiníció (Bevezetés)

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás I. Első ZH segédlet

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Java II. I A Java programozási nyelv alapelemei

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

PHP gyorstalpaló, avagy a Hello World-től az űrlapellenőrzésig

Java programozási nyelv 4. rész Osztályok II.

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Programozási nyelvek Java

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

OOP #14 (referencia-elv)

Java programozási nyelv 5. rész Osztályok III.

Interfészek. PPT 2007/2008 tavasz.

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

PHP5 Új generáció (2. rész)

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Globális operátor overloading

Öröklés és Polimorfizmus

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Java és web programozás

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Java és web programozás

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Programozási nyelvek Java

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Pénzügyi algoritmusok

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás

A C# programozási nyelv alapjai

OOP és UML Áttekintés

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

BME MOGI Gépészeti informatika 8.

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

Programozás módszertan

Bevezetés a programozásba Előadás: A const

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Informatika terméktervezőknek

Alprogramok, paraméterátadás

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Készítette: Nagy Tibor István

C++ programozási nyelv Konstruktorok-destruktorok

Objektumorientált programozás IX. Osztályok, objektumok

Objektumorientált programozás C# nyelven

Programozási nyelvek Java

Java és web programozás

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

A PHP nyelv alapjai. Web-Sky Consulting Kft Tóth Imre 2009

Szerver oldali technológiák Szerver oldali script nyelvek PHP

OOP. Alapelvek Elek Tibor

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Segédanyag: Java alkalmazások gyakorlat

Programozási nyelvek II.: JAVA, 4. gyakorlat

JAVA PROGRAMOZÁS 3.ELŐADÁS

Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Már megismert fogalmak áttekintése

Symfony kurzus 2014/2015 I. félév. Controller, Routing

III. OOP (objektumok, osztályok)

Programozási nyelvek Java

A JavaScript főbb tulajdonságai

Osztálytervezés és implementációs ajánlások

Objektumelvű programozás

Osztálytervezés és implementációs ajánlások

Programozási nyelvek (ADA)

C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:

Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

Bevezetés a programozásba. 8. Előadás: Függvények 2.

C# osztályok. Krizsán Zoltán

Algoritmizálás és adatmodellezés tanítása 1. előadás

Java programozási nyelv

Objektumok inicializálása

Java és web programozás

Java programozási nyelv 6. rész Java a gyakorlatban

Gregorics Tibor Modularizált programok C++ nyelvi elemei 1

Átírás:

Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19

Szuperglobális változók $ GET : request query paraméterek asszoc. tömbje $ POST : a kérés törzse, parszolva $ COOKIE : a kliens által küldött sütik $ REQUEST : az előbbi 3 tartalma $ SERVER : a HTTP prefixű kulcsok a kérés fejléceit tartalmazzák, a többi általában szerver-beálĺıtásokat $ ENV : a host szerveren definiált környezeti változókat tartalmazza $ FILES : ha a HTTP kéréssel fájlok is jöttek (a felhasználó fájlokat szeretne feltölteni), akkor azok ebben a tömbben lesznek Erős Bence () Web-technológia PHP-vel February 26, 2013 2 / 19

Megjegyzések idézőjelekkel közrezárt sztringkonstansban az adott hatáskörben létező változókat értékükkel helyettesíti a környzetet: $var = b ; echo a{$b}c ; // abc skalár érték típuskonverziója kényszeríthető cast-olással: $myint = (integer) $myvar; eddig egyetlen függvényről beépített sem volt szó HTTP válaszfejlécek ill. státuszkód a header(string $string, bool $replace = true, int $http response code ) függvénnyel álĺıthatóak Erős Bence () Web-technológia PHP-vel February 26, 2013 3 / 19

Függvények - változó hosszúságú paraméterlist alapértelmezett paraméterek: $<formális-paraméter>= <érték> - az érték csak literál lehet, tömbliterál esetén abban minden kulcsnak és értéknek literálnak kell lenni - ha egy paraméternek van alapértelmezett értéke a formális paraméterlistában, akkor az összes további paraméternek szintén kell hogy legyen változó hosszúságú paraméterlista: - func num args(): a hívott függvényben meghívva visszaadja a függvényhívásban megadott aktuális paraméterek számát - func get arg($i): megadja az i. aktuális paraméter értékét Erős Bence () Web-technológia PHP-vel February 26, 2013 4 / 19

Visszatérési érték alapértelmezetten érték szerint adja vissza a függvény a visszatérési értékét ha a függvénydefinícióban a függvény nevét & karakter előzi meg, és a függvényhívást szintén & előzi meg, akkor cím szerint. ha a függvény futása nem return <kifejezés>; utasítással ér véget, akkor a visszatérési érték NULL Erős Bence () Web-technológia PHP-vel February 26, 2013 5 / 19

Névtelen függvények a névtelen függvény egy érték: $sum = function(a,b) { return $a + $b; }; echo $sum(2, 2); ha a névtelen függvényben használni akarjuk a függvényt tartalmazó hatáskörben definiált változókat, akkor ezt a use kulcsszóval kell deklarálni. A use záradékban deklarált változó azt az értéket reprezentálja, melyet a változó a szülő-hatáskörben a névtelen függvény definíciójának pontján felvett. Erős Bence () Web-technológia PHP-vel February 26, 2013 6 / 19

callable pszeudo-típus olyan sztring, mely egy (már definiált) függvény neve vagy névtelen függvény vagy egyéb... (ld. OOP) boolean is callable($var) Erős Bence () Web-technológia PHP-vel February 26, 2013 7 / 19

Tömbfüggvények boolean is array($var) int count($arr) array array keys($array) boolean array key exists($array) boolean array walk(&$array, $fn) mixed array search($needle, $arr); boolean in array($arr, $needle); int extract($arr); (...) http://php.net/manual/en/ref.array.php Erős Bence () Web-technológia PHP-vel February 26, 2013 8 / 19

A tömb mint kétvégű sor mixed array shift(&$array) : törli és visszaadja a tömb első elemét int array unshift(&$array, $var1 [, $var2...]) : hozzáfűzi a változókat a tömb elejéhez mixed array pop(&$array) : törli és visszaadja a tömb utolsó elemét mixed array push(&$array, $var1 [, $var2...]) : hozzáfűzi a változókat a tömb végéhez Erős Bence () Web-technológia PHP-vel February 26, 2013 9 / 19

A futtatókörnyezet beálĺıtásai: php.ini A következőket illik ismerni: short open tags disable functions, disable classes expose php max execution time max input time memory limit error reporting display errors request order magic quotes gpc (ld. majd adatbázis-kezelésnél) Erős Bence () Web-technológia PHP-vel February 26, 2013 10 / 19

PHP OOP alapok osztály, absztrakt osztály, interfész, adattag, metódus: ugyanaz, mint Java-ban láthatóságok: public, protected, private - alapértelmezett: public - minden osztály és interfész láthatósága public, ezt nem is lehet megváltoztatni minősítés operátora: -> példányosítás: new <osztálynév>(...); $this : nemstatikus metódusokban használható referencia arra az objektumra, amin meghívtuk a mtódust. (ugyanolyan referencia, mint bármilyen más változó) Erős Bence () Web-technológia PHP-vel February 26, 2013 11 / 19

Konstruktorok a konstruktor neve speciális metódus, neve construct(... ) a new operátor hívásakor fut le, az új objektum inicializálására való egy osztálynak csak egy konstruktora lehet lehetnek alapértelmezett értékei a paramétereknek, ugyanúgy, mint minden más metódusnak/függvénynek Java-val szemben a konstruktor PHP-ben öröklődik, és nincs alapértelmezett super() konstruktorhívás üres paraméterlistánál nem kell kitenni a zárójeleket Erős Bence () Web-technológia PHP-vel February 26, 2013 12 / 19

Adattagok deklaráció, definíció: (public protected private var) $<változónév>( = <kezdőérték>); típusa nincs, a változóhoz hasonlóan egy típus nélküli referencia egy értékre (amelynek viszont van típusa) ha nincs megadva explicit kezdőérték, akkor az implicit kezdőérték null az explicit keződérték csak literál lehet nem kell feltétlenül minden adattagot deklarálni (bár ajánlott), a nem deklarált adattagokat az első írási művelet hozza létre (hasonlóan, mint a változóknál) az adattagra való hivatkozás vagy a nevével (azonosító) történik, vagy kapcsoszárójelek közötti kifejezés megadásával metóduson belül a tartalmazó osztály adattagjait is minősíteni kell ( $this->propname ) Erős Bence () Web-technológia PHP-vel February 26, 2013 13 / 19

Metódusok deklaráció, definíció: (public protected private) final? abstract? static? function <metódusnév>(<paraméterlista>) /*... */ abstract metódus szemantikája ugyanaz, mint Java-ban, az abstract módosítóval ellátott metódusoknál a paraméterlistát ; követi, nem pedig az implementációt tartalmazó blokk, ilyenkor csak deklarációról és nem definícióról van szó, a konkrét alosztályok feladata megadni az implementációt final módosítóval ellátott metódus: nem lehet az alosztályban felüldefiniálni az implementációt visszatérési érték: ugyanaz vonatkozik rá, mint a függvényeknél Erős Bence () Web-technológia PHP-vel February 26, 2013 14 / 19

deklaráció, definíció: const <konstansnév>= <érték>; mindig public láthatóságú az érték mindig literál <osztálynév>::<konstansnév>névvel hivatkozunk rá Erős Bence () Web-technológia PHP-vel February 26, 2013 15 / 19

Névterek A Java csomag-fogalmához hasonĺıt, programozó által definiált eszközöket fog össze. Neve azonosító. nevesített konstans függvény osztály interfész - A névtér-deklaráció csak a forrásfájl 1. utasítása lehet - A névtereken belül al-névtereket a \operátorral lehet létrehozni - pl. namespace my\own\ns; - névtér-szintű láthatóság PHP-ben nincsen Erős Bence () Web-technológia PHP-vel February 26, 2013 16 / 19

Elnevezések Ha a MyClass osztály a ns1\ns2 névtérben van, akkor a MyClass az osztály minősítetlen neve, melyet csak a ns1\ns1 \ns2 névtérben használhatunk a ns2\myclass a osztály minősített neve, melyet csak a ns1 névtérből használhatunk a ns1\ns2\myclass szintén minősített név, melyet csak az globális névtérben használhatunk a \ns1 \ns2\fn teljesen minősített név, melyet bárhonnan használhatunk Erős Bence () Web-technológia PHP-vel February 26, 2013 17 / 19

importálás: use kulcsszó Teljesen minősített nevek rövidítésére használjuk. Ha a MyClass osztály a ns1\ns2 névtérben van, akkor use ns1\ns2; deklaráció után ns2\myclass névvel látható use ns1\ns2 \MyClass; deklaráció után MyClass névvel látható use ns1\ns2 as nsalias; deklaráció után nsalias\myclass névvel látható use ns1\ns2 \MyClass as ClassAlias; deklaráció után ClassAlias névvel látható a globális névtérben levő osztályra saját névtérben levő kódból prefix nélküli \operátorral hivatkozunk: namespace myns; function fn() { $obj = new \MyGlobalClass; } Erős Bence () Web-technológia PHP-vel February 26, 2013 18 / 19

Megjegyzések az importálás csak osztályok és interfészek esetében működnek, függvényeket és nevesített konstansokat nem lehet importálni. ha minősítetlen függvényt vagy nevesített konstanst használunk, és ezek az aktuális névtérben nem találhatóak, akkor a futtatókörnyezet a globális névtérben fogja keresni a nevet. Ez azonban osztályok és interfészek esetében nem működik. Erős Bence () Web-technológia PHP-vel February 26, 2013 19 / 19