1 / 135

PHP nyelv

PHP nyelv. 1. rész. Történelem.

luyu
Download Presentation

PHP nyelv

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP nyelv 1. rész

  2. Történelem • A világháló kezdetben nem volt több egyszerű adatnál, a HTML (HyperText Markup Language) első változata még azt sem tette lehetővé, hogy képeket helyezzünk el weboldalunkon. Mára azonban hatalmas változásokon ment keresztül, rengeteg szolgáltatást tartalmaz: képeket, hangokat, mozgóképeket, és mindezek mellett szórakoztat, tanít és kapcsolatot tart. A web fejlődésével párhuzamosan fejlődtek az eszközök is, az egyszerű leírónyelvhez valódi programozási nyelvek csatlakoztak.

  3. Történelem • A statikus weboldalak igen fontos szerepet töltöttek be az Internet szolgáltatásaiban az ún. hőskorban. Ma azonban már nagyon sok olyan feladat létezik, melyeket nem lehet, vagy nem célszerű statikus oldallal megoldani. A cégek adataikat többnyire adatbázisokban tárolják. Ezekből az adatbázisokból le lehet ugyan képezni az adatokat különböző eljárásokkal statikus oldalakra, azonban ez több olyan problémát is felvet, mely az információ közzétételének ezen módját kizárja a lehetséges megoldások közül. • Vannak olyan feladatok, melyek ugyancsak szükségessé teszik a szerver-oldali programfuttatást, ilyen lehet például egy egyszerű letöltés-számláló az adott oldalon, de lehet például egy Internetes portál friss hírek rovata, mely igen gyakran frissül. Ma már nincs arra energia, humán erőforrás, hogy ezeket statikus weblapon tartsák karban illetve frissítsék és, akkor még nem is beszéltünk a hibalehetőségekről (például elírás).

  4. Történelem • A dinamikus weboldal egyik változata, mely kliens-oldali programok segítségével kommunikál a felhasználóval. Ma a feladatok igen széles skáláját tudjuk a kliens oldalon elvégezni, kezdve a legegyszerűbb kérdőív adatainak ellenőrzésétől, a külön csatornán lebonyolított titkosított banki tranzakció kezelésig. A legelterjedtebb kliens-oldali szkript nyelv egyértelműen a Javascript. Erről már adtunk áttekintést a Javascript nyelv keretein belül, amely tipikusan erre a célra fejlesztettek. A kliens oldali programozásnak azonban van néhány hátulütője: a lassúság és a böngészőfüggőség. A felhasználók gyors, könnyen átlátható, könnyen kezelhető, stabilan működő oldalakat szeretnek használni.

  5. Történelem • Néhány éve a hangsúly ezért ismét a szerver-oldali megoldásokra terelődött. A CGI (Common Gateway Interface) szabvány lehetővé teszi más programok futtatását és a kimenetek szövegbe, hangba vagy videóba összegezve a kliensre juttatását. Szabványos felületet biztosítva a CGI lehetővé teszi a programozók számára programozási nyelvek széles spektrumának használatát. CGI programok dolgozhatják fel a kliens által kitöltött űrlapokat, számlálhatják az oldalt látogató felhasználókat, adatokat kezelhetnek adatbázisokban és több száz egyéb feladatot oldhatnak meg. A szerver-oldali programozáshoz sorolható: a Perl (Practical Extraction and Report Language), a Python, a PHP, az ASP (Active Server Pages), a JSP (Java Server Pages).

  6. A PHP története • A PHP első változatát - amely tulajdonképpen egy makrókészlet volt - Rasmus Lerdorf készítette 1994-ben. Ezeket a segítő eszközöket együttesen a Personal Home Page Tools névvel illette. Később egy friss elem került a csomagba, a Form Interpreter (Űrlapfeldolgozó), így PHP/FI néven vált ismertebbé. A felhasználók szemszögéből a PHP/FI nagyon hasznos segédeszköz volt, több fejlesztő is felfigyelt rá, így 1997-re már számos programozó dolgozott rajta. Az így elkészült PHP3-as már egy csapat együtt-működéséből született. A PHP3-as azonban még elég lassú volt ahhoz, hogy mentségül szolgáljon a Perl-höz értő programozóknak, miért nem váltottak.

  7. A PHP története • Az 1990-es évek végén a webszerver nyelvek nagy fejlődésen mentek át. A Perlt és az első PHP-t - mivel HTML oldalak voltak - soronként értelmezték. A fejlesztők később olyan rendszereket választottak, amelyek memóriába fordítottak. A nyílt forráskódú fejlesztéseknek köszönhetően megjelent PHP4 és a PHP3 közötti óriási teljesítménykülönbség az értelmezésről a fordításra való áttérésnek köszönhető. A PHP4 egy olyan nyílt forráskódú nyelv az új webfejlesztők számára, amely folyamatosan váltotta fel a Perl-höz hasonló régebbi nyelveket.

  8. A PHP története • Ma a PHP - hivatalosan a PHP: Hypertext Preprocessor elnevezést használja - egy széles körben használt, nyílt forráskódú, általános célú programozási nyelv, különösen jó webfejlesztés támogatással és HTML-be ágyazási képességekkel. A szintakszisa a C, Java és Perl nyelvekre épül és viszonylag könnyen megtanulható. A nyelv fő célja lehetőséget teremteni dinamikusan generált weboldalak gyors készítésére, de a PHP ennél sokkal többre is képes. A PHP főleg szerveroldali szkriptek írására készült, azaz bármire képes, amire más CGI programok, ilyen funkciók például az űrlap adatok feldolgozása, dinamikus tartalom generálása, vagy sütik küldése és fogadása.

  9. A PHP előnyei • Egyértelmű, hogy a PHP az egyetlen igazi nyelv, de vannak akiket csak a tények győznek meg, a tények pedig azt mutatják, hogy napjaink weboldalaihoz a PHP a megfelelő szkript nyelv. • Fejlesztési sebesség • Mivel a PHP lehetőséget ad a HTML elemek és a programkódok elkülönítésére, az alkalmazások fejlesztésekor lehetőség van elválasztani a kódolási, tervezési, és összeállítási szakaszt. Ez jelentősen megkönnyíti a programozók életét azzal, hogy elmozdítja az akadályokat a hatékony és rugalmas alkalmazások kialakításának útjából.

  10. A PHP előnyei • Nyílt forráskód • A PHP mint nyílt forráskódú termék jó támogatással rendelkezik, ráadásul a PHP az elterjedtebb operációs rendszerek bármelyikén képes futni, a legtöbb kiszolgáló-programmal együttműködve. Nagy az esély rá, hogy bármilyen problémával is kerüljünk szembe, kis keresgélés után választ kapunk rá, ha mégsem, egy levelezőlistára küldött üzenetre általában hamar érkezik a megfelelő válasz a megoldásra. • A feldolgozóprogram hibáinak javítása nem sokkal felfedezésük után megtörténik, és a felmerült új igényeket kielégítő szolgáltatások is hamar beépülnek a nyelvbe. Nem kell várni a következő hivatalos kiadásra, hogy a fejlesztések előnyeit élvezzük. Nincs a PHP működtetéséhez egyedileg kiválasztott kiszolgáló vagy operációs rendszer. Szabadon választhatunk olyan rendszert, amely kielégíti saját vagy ügyfeleink igényeit, kódunk továbbra is futtatható lesz, bármi mellett is döntünk.

  11. A PHP előnyei • Teljesítmény • A hatékony Zend Engine-nek (a Zend Engine a PHP modulok mögött található, a programokat futtató mag elnevezése) köszönhetően a PHP4-es a mérések szerint messze maga mögött hagyja legtöbb versenytársát. Ehhez az előnyhöz hozzávehetjük még a napjaink programjait átszövő objektum orientált elméletet, amelyet szintén támogat a PHP (igaz ezt elsősorban az 5-ös verziótól teljesedett ki, de a lehetőség korábban is adott volt rá), akkor szinte teljes a kép. • Hordozhatóság • A PHP-t alapvetően úgy tervezték, hogy alkalmas legyen számos operációs rendszeren való használatra, együttműködve különböző kiszolgálókkal és adatbázis-kezelőkkel. Fejleszthetünk UNIX rendszerre és áttérhetünk NT alapokra minden probléma nélkül. A PHP alkalmazásokat kipróbálhatjuk Personal Web Serverrel, és később telepíthetjük azokat egy UNIX rendszerre, ahol a PHP-t Apache modulként használjuk.

  12. PHP bevezetés • A PHP egy szerveroldali szkript nyelv. A válaszlap formátumát leíró utasítások egy HTML dokumentumba ágyazva helyezkednek el. A webszerver a meghívott dokumentum URL-jéből ismeri fel, hogy a kérést a PHP szervernek kell feldolgoznia. A mintadokumentum HTML utasításai változtatás nélkül átkerülnek a válaszlapra, a PHP specifikus elemeket a PHP végrehajtja, és a generált válasz kerül be az eredménylapra. Ugyan a PHP leíró nyelve nem adatbázis orientált, hanem a C általános programozási nyelvre épül, mégis tartalmaz adatbázis kapcsolódási kiegészítő modult, amely lehetővé teszi, hogy elérhessük, és a válaszlapon megjeleníthessük a legkülönbözőbb adatbázisokban tárolt adatokat is. • A PHP rendszer működési struktúrája az alábbi elemekből épül fel: • webszerver • PHP-szerver • minta dokumentum

  13. PHP bevezetés • A PHP kérések feldolgozása az alábbi lépésekben fut le: • Az olvasott lapon kiadnak egy hiperlink kapcsolódást egy olyan URL-re, mely mögött PHP hívás rejlik. Egy ilyen cím lehet például a következő: • http://localhost/php/index.php • illetve a hivatkozást más esetekben a • http://localhost/index.php formában is megadhatjuk. • A hivatkozásokban az URL első része jelöli ki, hogy mely gépen található a webszerver és a PHP szerver. Az első mintában a ”/php/” rész egy virtuális könyvtár, amely jelzi a webszervernek, hogy itt egy PHP dokumentumot kell kezelni, és meg kell majd hívni a PHP szervert. A virtuális útvonal kijelölésének menete webszerver specifikus, rendszerint a webszerver konfigurációs állományát kell módosítani a virtuális útvonal kijelöléshez.

  14. PHP bevezetés • A második mintában nem kellett virtuális könyvtár ahhoz, hogy a webszerver tudja, hogy a PHP szervert kel meghívnia. Ebben az esetben ugyanis a dokumentum kiterjesztése utal arra, hogy a dokumentumot a PHP fogja kezelni. A kiterjesztések és a kezelő programok összerendelése is a webszerver konfigurációs állományában történik. • Az URL utolsó tagja, példánkban az index.php rész a séma dokumentumot jelöli ki, mely megadja a válaszlap előállításának módját.

  15. PHP bevezetés • A webszerver érzékeli, hogy a meghívott URL a PHP szerverhez kapcsolódik, ezért meghívja a PHP modult végrehajtásra. A PHP szerver kétféle módban is működhet: CGI és API módban. Az első lehetőség esetén minden oldal lekérésekor és feldolgozásakor egy új példány fut le a PHP feldolgozóból. Mivel a szkript futtatása után egy ilyen példány leáll, minden erőforrás, amit lefoglalt, megszűnik. A népszerűbb a második forma, amikor a PHP-t modulként futtatjuk egy több processzes webszerveren. Egy több processzes webszerver tipikusan rendelkezik egy szülő processzel, ami koordinálja a többi kapcsolódó process (a gyermekek) munkáját, amik valójában a weboldalak kiszolgálását végzik. Amennyiben egy kérés érkezik egy klienstől, egy éppen szabad gyermekprocess kapja meg a kiszolgálásra az utasítást.

  16. PHP bevezetés • A PHP modul megkapja a végrehajtási feladatot a feldolgozandó séma dokumentum azonosítójával együtt, átolvassa és elemzi a séma dokumentumot. A PHP specifikus utasításokat értelmezi és végrehajtja. • A,mennyiben adatbázis hozzáférési igények is felmerültek a PHP specifikus utasítások között, akkor a PHP szerver kapcsolatba lép az adatbázis-kezelővel, és végrehajtja a kijelölt műveletsort. A PHP specifikus utasítások között megtalálhatok azon elemek is melyekkel leírható, hogyan jelenjenek meg az eredményadatok a válasz-dokumentumban. • A generált válaszlap a HTML utasítások és a dinamikus elemekből felépülve, átkerül a Web-szerverre, majd onnan eljut az őt igénylő böngészőhöz.

  17. A PHP kód írása • A PHP specifikus utasítások a HTML utasítások közé beillesztve, beágyazva foglalnak helyet. A HTML utasításoktól való egyértelmű és könnyen kezelhető szétválasztás érdekében az egyes PHP specifikus utasításokat keretbe foglaljuk. Az elhatárolás az alábbi változatok valamelyikével lehetséges:

  18. A PHP kód írása • A fenti kezdő- ill. záróelemek közül az utolsó kettő használatát a ”php.ini” fájlban engedélyezni kell a ”short_open_tag=on” ill. az ”asp_tags=on” beállításokkal. Éppen emiatt célszerű az elsőt vagy a másodikat használni. • A PHP elemek a C nyelvi kifejezésekhez hasonló formátumot öltenek. Egy tagolt rész több elemi PHP kifejezést, utasítást is tartalmazhat. Ekkor az egyes PHP utasításokat pontosvesszővel határoljuk el egymástól: • <?php • PHP utasítás1; • PHP utasítás2; • ?>

  19. A PHP kód írása • Mivel a HTML fájlok egyszerű szöveges fájlok, bármilyen szövegszerkesztő segítségével írhatjuk a PHP kódokat is. A HTML-szerkesztők általában viszont nyújtanak valamilyen különleges támogatást PHP-szerkesztéshez is, ilyenek például a kódszínezés, a kifejezésszerkesztő vagy a tesztelő. • Az évek során hagyománnyá vált, hogy a programozási nyelvek megismerését a program bemutatásával kezdik. A sorok elején található számozás és a kettőspont nem a kód része, ezek csak a kódhoz tartozó magyarázatok megkönnyítése miatt kerültek oda. • <?php • print("Hello, World!"); • ?>

  20. A PHP kód írása • Ez a kód nem tartalmaz HTML tag-eket, mégis működőképes. Gépeljük be a kódot és mentsük el a fájlt ”hello.php” néven! Most már csak annyi dolgunk van, hogy a szerveren elhelyezzük a fájlt. Ha otthoni számítógépünkön dolgozunk, akkor meg kell keresni azt a könyvtárat, ami a ”localhost”-hoz tartozik, és oda be kell másolni, egyébként pedig FTP segítségével fel kell töltenünk egy másik számítógépre. • Amennyiben minden rendben ment, akkor elérhetjük fájlunkat egy böngésző segítségével, és a következő eredményt kapjuk:

  21. A PHP kód írása • Ha a PHP-t nem sikerült telepíteni a kiszolgálóra vagy nem a megfelelő kiterjesztést használtuk, feltehetően nem az előző ábrán látható kimenetet kapjuk. Ebben az esetben általában a PHP program forráskódját látjuk viszont. • Elemezzük ki a kódot! Az első és a harmadik sorban található nyitó- ill. záróelemeken kívül egyetlen egy új dolgot találunk. A print() parancs kiírja a böngészőbe a neki átadott adatokat. Az adat jelen esetben egy szöveg, mely az utasítás végrehajtásakor a böngészőbe kerül kiírásra. A print() tulajdonképpen egy függvény. A függvények olyan parancsok, amelyek valamilyen műveletet végeznek általában a nekik átadott adatokkal. • A függvényeknek átadott adatokat majdnem mindig zárójelek közé kell tennünk a függvény neve után. Ebből a szempontból a print() kivételes, mert a zárójelpárja elhagyható. A print() helyett használható az echo() függvény is, melyek segítségével a HTML tag-eket is kiírathatjuk, például a print("<br>"); egyenértékű a <br> tag HTML kódbeli elhelyezésével.

  22. HTML-es változat • <html> • <head> • <title>Hello</title> • </head> • <body> • <?php • print("Hello, World!"); • ?> • </body> • </html>

  23. HTML-es változat • Egy dokumentumban a HTML elemek közé tetszőleges számú PHP kódblokk írható, és ezek együttesen alkotnak egy programot. Bármi, amit egy megelőző blokkban határoztunk meg, a dokumentumon belül elérhető lesz a későbbi blokkokban is. • PHP blokk nem csak a <body> és </body> tag-ek között helyezhető el, hanem használhatjuk a PHP-t például dinamikus oldalcím generálására is, ha a <title> és </title> tag-ek közé helyezzük el a kódot. • A következőkben a HTML tag-eket csak a fontos helyeken hagyjuk meg a kód rövidíthetősége érdekében.

  24. Megjegyzések a PHP kódban • A PHP utasítások közé elhelyezhető megjegyzéseknek is többféle szintaktikája van: • // szoveg : ekkor a megjegyzés kezdetétől az aktuális sor végéig terjedő rész lesz a megjegyzés rész, a közrefogott szöveg nem kerül értelmezésre a PHP szerver által. • # szoveg : ugyanolyan értelmezésű, mint az előző formátum. • /* szoveg */ : ekkor több sorra is kiterjedhet a megjegyzés rész. • A későbbiekben rendszeresen megjegyzések találhatók majd a példaprogramokban magyarázat céljából.

  25. ADATOK • Az adat a program alapvető alkotóeleme. A PHP-ben az adatokat definiálhatjuk szövegként (karakterlánc vagy sztring), egészként, lebegőpontos számként, logikai értékként, és a típusok összetett keverékeként. • Változók • $a="alma"; • A $a egy változó, amely az alma szöveget tartalmazza, értékét bármikor megváltoztathatjuk. A konstansok értékét és a változók értelmezési tartományát viszont nem lehet megváltoztatni. A változókra a következő feltételek teljesülnek: • A változók azonosítója mindig a $ (dollár) jellel kezdődik, az azonosító pedig betűket, számokat, és az _ jelet tartalmazhatja, kikötve, hogy számmal nem kezdődhet. • A felvett érték szabja meg a változó típusát.

  26. ADATOK • A változók meghatározott típusúak lehetnek, például egész vagy sztring, a PHP azonban szükség esetén átkonvertálja a változót más típusúvá. • $s="0"; • A $s, amely a 0 (nulla) szöveget (karaktert) tartalmazza, automatikusan átkonvertálható üressé vagy hamissá. • A változók nagysága/hosszúsága korlátozott, de a sztringek majdnem korlátlan hosszúak lehetnek (csak a memória korlátoz). • A hiányzó változókat a PHP automatikusan létrehozza: • $szam=4; • print($szma);

  27. ADATOK • Az elgépelésnek nem hibaüzenet az eredménye. A PHP ugyanis létrehozza a $szma változót, a print() függvény pedig egy üres vagy tartalom nélküli változót kap, aminek hatására a böngészőben nem jelenik meg semmi. Az isset() függvény ellenőrzi, hogy a változó létezik -e, és logikai értéket szolgáltat vissza, míg az unset() függvény eltávolítja a változót. A későbbi részekben láthatunk majd példát e két függvény használatára.

  28. ADATOK • Konstansok • define("a","alma"); • A define parancs az első paraméterként megadott névvel létrehozza a konstanst, és a második paraméterként megadott értéket rendeli hozzá. • A define parancs bárhol használható, a definiált konstansok pedig globális hatókörűek, azaz mindenhol, így a függvények belsejében is elérhetők.

  29. ADAT-típusok

  30. ADATOK • A változó típusának meghatározására a PHP gettype() függvényét használhatjuk. Amennyiben a függvényhívás zárójelei közé változót teszünk, a gettype() egy karakterlánccal tér vissza, amely a változó típusát adja meg. • A változó típusának módosítására a PHP a settype() függvényt biztosítja. A settype()-ot úgy kell használnunk, hogy a megváltoztatandó típusú változót, valamint a változó új típusát a zárójelek közé kell tennünk, vesszővel elválasztva. • $proba=3.14; • print gettype($proba); //kiírja, hogy double • settype($proba,"string"); //karakterlánccá alakítja

  31. ADATOK • Azok, akik már használták a C programozási nyelvet, nyugodtan alkalmazhatják e nyelvben megismert típusátalakítást vagy más néven típuskényszerítést: • $proba=(string)$proba; • Ez a sor egyenértékű a • settype($proba,"string"); sorral • Függvények formájában léteznek olyan típuslekérdező parancsok, melyek paraméterként megadva a változó nevét, logikai értékkel térnek vissza, ilyenek például: • is_array() • is_bool() • is_double() • is_numeric() • is_string() • is_object().

  32. ADATOK • Műveletek adatokkal • A PHP rengeteg kifejezést, operátort, függvényt, osztályt kínál, továbbá többféle lehetőséget nyújt az adatok kezelésére mind az adatbázisok, mind pedig a HTML felé. • Kifejezések • A PHP-ben minden kifejezés. A $kor=29; utasítás három kifejezést tartalmaz. Egyszer a $kor változót, a 29-et, és magát az egész utasítást. • A kifejezés a függvények, értékek és operátorok (műveletjelek) olyan együttese, amely értéket határoz meg. Általánosságban azt mondhatjuk, hogy ha értékként használhatunk valamit, akkor az kifejezés.

  33. Operátorok • Az operátor (műveletjel) jel vagy jelsorozat, amelyet ha értékek összekapcsolására használunk, valamilyen műveletet végezhetünk, amely általában új értéket eredményez. Az operandus egy érték, amelyet a műveletjellel kapcsolatban használunk. Egy műveletjelhez általában két operandus tartozik. • Hozzárendelő • A $kor=29; utasítás a baloldali változóhoz a jobb oldal értékét rendeli. Egy utasításban több hozzárendelő operátort is használhatunk: $szam=$kor=29; • Összehasonlító operátorok: ==; !=, ===, !==, <, >, <=, >= • Az összehasonlító operátorok két értéket hasonlítanak össze, és hibákhoz vezethetnek a PHP automatikus típuskonverziója miatt. A hamis logikai érték és a 0 megkülönböztetésére alkalmasak a === vagy a !== operátorok, ugyanis a == ezen értékeknél nem a várt eredményt adja.

  34. Operátorok

  35. Operátorok • Aritmetikai operátorok: + - * / % • A + összeadáshoz, a - kivonáshoz, a * szorzáshoz, a / osztáshoz használható, a % pedig az osztás maradékát adja. A maradékos osztást két lebegőpontos számmal is elvégzi úgy, hogy elhagyja a tizedesjegyeket. A maradékos osztás eredménye mindig egész. Az aritmetikai műveleteket az operációs rendszer a számítógép hardverével végezteti el, így ezek pontossága egyrészt a hardvertől függ, másrészt attól, hogy az operációs rendszer hogyan kezeli a hardvertől kapott eredményt.

  36. Operátorok • Sztringoperátorok: . .= • Két sztring összefűzéséhez használható a ”.” operátor, míg egy sztring végéhez egy másikat a ”.=” operátorral lehet csatolni. • $szin="piros"." "."kék"; //$szin="piros kék" • $szin.=" lila"; //$szin="piros kék lila"

  37. Operátorok • Növelő/csökkentő operátorok: ++ -- • A ++ és -- operátorok egyaránt írhatók változók elé és mögé. A különbség az, hogy ha például a $szam változó értéke 7, és kiadjuk a print(++$szam); parancsot, akkor a $szam változó előbb felveszi a 8 értéket, majd ez megjelenik a böngészőben, ha pedig a print($szam++); parancsot adjuk ki, akkor előbb kiíródik a 7, és utána növelődik meg a változó tartalma eggyel. Ez teljesen hasonlóan működik a -- operátor esetében, csak a változó tartalma eggyel csökkeni fog.

  38. Operátorok • Egyéb hozzárendelő operátorok: += -= *= /= %= • Ezek szintén az egyszerűbb leírást segítik. Például a $szam+=4 utasítás egyenértékű a $szam=$szam+4 utasítással, a $szam*=4 utasítás pedig a $szam=$szam*4 utasítással. • Logikai operátorok: ! && || and xor or • A logikai operátorok logikai értékeken végeznek műveleteket. A következő táblázat a lehetséges logikai műveleteket mutatja be. • Arra a kérdésre, hogy miért van kétféle vagy és és logikai művelet, a műveletek sorrendje adja meg a választ.

  39. Operátorok

  40. Operátorok Bináris operátorok: & | ^ ~ << >> A számítógépben minden binárisan van tárolva, azaz minden egy különböző hosszúságú bináris sztring. Ezek kezelésére alkalmasak a bináris operátorok. Amennyiben van egy 1-es és egy 2-es számunk, akkor a nekik megfelelő bináris alakok a 01 és az 10 (napjainkban 32 biten szoktak tárolni, így például az 1-es 31 db 0 után egy 1-es). A bitenkénti és (&) eredményében azokon a helyeken lesz 1-es, ahol mindkét operandusban 1-es volt. Így az 1-es és a 2-es bitenkénti és-e 0. A bitenkénti vagy (|) eredményében azokon a helyeken lesz 1-es, ahol legalább az egyik operandusban 1-es volt, azaz az 1-es és 2-es esetében az eredmény a bináris 11 lesz, ami 3-at ér. A bitenkénti xor (^) eredményében azokon a helyeken lesz 1-es, ahol a két operandus közül az egyikben és csakis az egyikben 1-es volt. Az 1 ^ 2 szintén a 3-at adja.

  41. Operátorok A bitenkénti tagadás (~) az összes bitet invertálja, azaz ahol 1-es volt, ott 0 lesz, és fordítva. Már csak két operátor maradt hátra: a jobbra tolás (>>) és a balra tolás (<<). Ezek az operátorok meghatározott értékkel eltolják a biteket a megfelelő irányba. Amennyiben a $szam változó értéke 3, akkor a $szam>>=1; utasítás hatására a $szam értéke 1 lesz (a bináris 11-et 1-gyel jobbra tolva a bináris 01-et kapjuk). Ha pedig a $szam<<=2; utasítást nézzük, akkor a $szam a 12-vel lesz egyenlő (az 11-ből az 1100-át kapjuk).

  42. Operátorok • Hivatkozás operátor: & • A hivatkozás operátort változónév elé kell tenni. Amennyiben a $szam változó értéke 4, és kiadjuk a $sz=&$szam; utasítást, akkor a $sz változó ugyanarra a memóriacímre fog mutatni, mint a $szam, szükségképpen az értéke is meg fog egyezni a $szam változó értékével, azaz 4 lesz. Ha későbbiekben bármelyik értékét változtatjuk, változik a másik is, hiszen ugyanarra a memóriacímre mutatnak. • Hibaellenőrző operátor: @ • A ”@” operátor elrejti a függvények és különböző kifejezések hibáit, ami néhány weboldalon hasznos lehet, hiszen a hibaüzenetek általában a felhasználóknak nem mondanak semmit. A hibaellenőrző operátort a függvénynév elé kell tenni.

  43. Operátorok • Műveleti sorrend • new • [ • ! ~ ++ -- (int) (double) (string) (array) (object) @ • / % • + - . • << >> • < <= > >= • == != === !== • & • ^ • |

  44. Operátorok • Műveleti sorrend • && • || • ?: • = += -= *= /= .= %= &= |= ^= ~= <<= >>= • print • and • xor • or • ,

  45. Vezérlési szerkezetek • Az eddig bemutatott kódokban az utasítások mindig sorban egymás után végrehajtódtak, és a program mindig ugyanazt az eredményt adta. Ez a szekvenciális végrehajtás nem biztosít túl nagy teret a rugalmasságnak. A bonyolultabb programokban lehetőség van feltételek kiértékelésére, és a program ennek megfelelően változtatja viselkedését.

  46. Elágazás • Az elágazás teszi lehetővé, hogy a programunk egy adott ponton egy kifejezés logikai értékének megfelelően haladjon tovább. • Az elágazásoknak általában három típusa szokott megjelenni a programozási nyelvekben: az egyágú (egyirányú), a kétágú (kétirányú), és a többágú (többirányú).

  47. Az egyágú és a kétágú elágazás • if (kifejezés) • { • utasítás; • } • Amennyiben a kifejezés logikai értéke igaz, akkor a zárójelpárok által meghatározott blokk végrehajtódik. A két zárójel elhagyható, ha a blokk egyetlen utasításból ál. Az elhagyás azonban sokszor rontja az átláthatóságot, valamint ha később más utasítást is felveszünk a blokkba, esetleg megfeledkezhetünk a zárójelekről.

  48. Az egyágú és a kétágú elágazás • <?php • $szam=2; • if ($szam==2) • { • print "A szám értéke 2"; • } • //kiírja, hogy A szám értéke 2 • ?> • A fenti kódban a $szam változó tartalmát vizsgáljuk. Amennyiben a változó tartalma 2, akkor az if utáni blokkban található utasítás végrehajtódik, egyébként nem tesz semmit a program. Jelen esetben a böngészőben megjelenik ”A szám értéke 2” szöveg. Fontos megjegyezni, bár már volt róla szó, hogy a kifejezés vizsgálatakor a dupla = jelet használjuk a szimpla helyett. Ezek összekeverése súlyos hiba! Amennyiben azt írtuk volna, hogy if ($szam=2), akkor ez mindig az igaz logikai értéket szolgáltatja, ugyanis ilyenkor a $szam változónak értékül adjuk a 2-t (mivel ez mindig sikeres, igaz logikai értéket adunk az if számára).

  49. Az egyágú és a kétágú elágazás • A kétágú elágazás lehetőséget ad arra, hogy a kifejezés hamis logikai értéke esetén is utasításokat hajtsunk végre. • if (kifejezés) • { • utasítás; • } • else • { • utasítás; • } • Ilyenkor a két blokk közül valamelyik fog végrehajtódni.

  50. Az egyágú és a kétágú elágazás • A következő példaprogramban egy szám reciprokát szeretnénk előállítani majd megjeleníteni, de figyelembe kell vennünk, hogy a nullának nincs reciproka. • <?php • $szam=2; • print "A szám: $szam<br>"; • if ($szam!=0) • { • print "A szám reciproka: "; • print 1/$szam; • } • else • { • print "Nincs reciproka!"; • } • //kiírja, hogy 0.5 • ?>

More Related