PHP

A Programozás Wiki wikiből

Mi a PHP?[szerkesztés]

A PHP (PHP: Hypertext Preprocessor) az egyik legelterjedtebb többplatformos általános célú szkriptnyelv, amelyet tipikusan dinamikusan - azaz futásidőben - (újra)generált weboldalak működtetéséhez használnak fel. A PHP-ben magában készült programok platformfüggetlenek lehetnek, azaz változtatás nélkül futtathatók a PHP által támogatott operációs rendszer- és webkiszolgáló-platformok mindegyikén. A PHP forráskódot magába a webszerver által kiszolgált weblapok HTML kódjába lehet fűzni, amelyet a kiszolgálás során a webszerverbe tipikusan bővítőmodulként beépülő PHP értelmező lefuttat, és az ennek során generált kimenetet küldi el a kliens felé az eredeti PHP szkriptblokk helyén az oldalban.

Egy kis történelem...[szerkesztés]

A PHP születése 1994-re tehető amikor Rasmus Lerdorf megalkotta a nyilvánosság számára nem elérhető verzióját, melyet csupán azért írt, hogy megkönnyítse több egyszerű script írását, mint például egy számláló vagy egy vendégkönyv. A program 1995 elejétől Personal Home Page Tools néven egyre ismertebbé vált. Még ebben az évben újraírta a program szkript feldolgozó részét majd PHP/FI néven kiadta. Ezenkívül extra funkciókkal is bővítette a programot és az már képes volt formokat feldolgozni, ezenkívül támogatta az mSQL adatbázisok használatát is. 1997-re több mint 50 000 szerver használta a PHP-t. Ekkor Rasmus-hoz több fejlesztő is csatlakozott akikkel együtt teljesen újraírták az interpretert. 1998 és 1999 között egyre jobban elterjedt, egy 1999. novemberi felmérés szerint több mint 1 100 000 domain név alatt futott a PHP A PHP 4-es verziójában szintén újraírták a script-értelmezőt, ami akár 2-3-szoros de néha előfordult, hogy 100-szoros sebességkülönbséget jelentett a régebbi 3-as verzióhoz képest.

Miért pont a PHP?[szerkesztés]

Ebben a részben a dinamikus oldalak készítéséhez használt nyelveket fogjuk összehasonlítani. Aki már foglalkozott dinamikus oldalak készítésével annak bizonyára ismerősek a következő két nyelv: ASP, Perl. Ez a két nyelv és a PHP a leggyakrabban használt szerveroldali script nyelv.


Szintaktika

Szintaktika szempontjából talán a Perl a legbonyolultabb. Ennek legfőbb oka, hogy egy probléma megoldására nagyon sokféle lehetőséget nyújt. Ezt a készítők a nyelv megalkotásakor előnynek szánták de később kiderült, hogy ez inkább hátrány mert a kész programot nehéz dokumentálni. Az ASP-t a Microsoft fejleszti és IIS szerverekkel együtt használható.(De ma már létezik Unix alá is ASP.) A nyelv nagyon hasonlít a Visual Basic-re emiatt könnyen átlátható. A PHP több nyelv formalitását ötvözi ezek a C, a Perl, a JavaScript. Szintaktikájában inkább a C-re hasonlít de aki egyáltalán nem ért a programnyelvekhez azok is könnyedén megtanulhatja.


Függvények

Persze a szintaktika nem minden egy programozási nyelvben, használhatóságához nagymértékben hozzájárul az is, hogy milyen függvény-tárházat használhatunk a nyelvben. A PHP-t használó programozó ez miatt igazán nem panaszkodhat, íme egy lista a legfontosabb függvénycsoportokról:

Adatbázis-kezelők elérése (MS-SQL, MySQL, Oracle, SyBase, PostgreSQL, dBase, filePro, Informix, InterBase, mSQL, dbm, ODBC), Tömbkezelés, Matematikai függvények, file-kezelés, programfuttatás, képlétrehozás/manipulálás, IMAP, LDAP, kódolás, hálózat, NIS, PDF, string, url, tömörítés, XML.

Ezek persze csak a nyelvhez tartózó függvények voltak, azonban lehetőségünk van saját függvények létrehozására, ezáltal akár saját függvénykönyvtárakat is készíthetünk hasznosnak vélt függvényeinkből. Ezt már sokan meg is tették, így rengeteg hasznos könyvtárat tölthetünk le.

Hello World![szerkesztés]

PHP-ban a 'Hello World!' üzenetet a következőképpen írhatjuk ki:

  <?php
  echo 'Hello World!';
  ?>

PHP használata a HTML kódban[szerkesztés]

A HTML-kódunkba bárhova beágyazhatunk PHP-kódot, a kódunkat <?php és ?> jelek közé kell helyeznünk. Ekkor a fájl kiterjesztésének html helyett php-nak kell lennie.

Példa:

  <html>
  <head>
  <title><?php echo 'Ez az oldal címe'; ?></title>
  </head>
  <body>
  <?php
     echo 'Többsoros PHP-kód. ';
     $i = 1;
     echo "Az \$i értéke $i.";
  ?>
  </body>
  </html>

Feltételek kezelése[szerkesztés]

Az if haszálata[szerkesztés]

Használat:

   if([feltétel]) {
      [parancsok]
   }

Példa I.:

   if(0 == 0) {
      echo 'Nulla egyenlő nullával.';
   }

Példa I. kimenete:

  Nulla egyenlő nullával.

Példa II.:

   if(2 * 2 == 5) {
      echo 'Kétszer kettő valóban öt.';
   }

Példa II. kimenete:

  
(üres kimenet)


Példa III.:

 
   $a = 1;
   if($a > 0) {
      echo "Az $a pozitív szám.";
   }

Példa III. kimenete:

  Az 1 pozitív szám.

Az If és az Else[szerkesztés]

Az else-t használhatjuk annak az esetnek a kezelésére, ha az if ág feltétele nem teljesül.

Használat:

  if([feltétel]) {
     [parancsok]
  } else {
     [parancsok]
  }

Példa I.:

   
   $valtozo=true;
   if ($valtozo==true) {
     print "Igaz";
   }
   else {
     print "Nem igaz";
   }
   

Példa I. kimenete:

  Igaz

Példa II.:

  if(2 * 2 == 5) {
     echo 'Kétszer kettő valóban öt.';
  } else {
     echo 'Kétszer kettő nem öt.';
  }

Példa II. kimenete:

  Kétszer kettő nem öt.

If, Elseif, Else használata[szerkesztés]

Amennyiben kettőnél több lehetőséget szeretnénk kezelni, az elseif-et kell használnunk.

Használat:

  if([feltétel]) {
     [parancsok]
  } elseif([feltétel]) {
     [parancsok]
  } elseif([feltétel]) {
     [parancsok]
  } ...
    else {
  }

Korlátlan számú elseif-t használhatunk egymás után.

Példa I.:

   
   $valtozo=2;
   if ($valtozo==1) {
     print "A szám 1";
   }
   elseif ($valtozo==2) {
     print "A szám 2";
   }
   else {
     print "A szám nem 1 és nem 2"; 
   }
   

Példa I. kimenete:

  A szám 2

Példa II.:

  $a = 10;
  if($a % 3 == 0) {
     echo '$a 3-mal osztva 0-t ad eredményül.';
  } elseif($a % 3 == 1) {
     echo '$a 3-mal osztva 1-t ad eredményül.';
  } elseif($a % 3 == 2) {
     echo '$a 3-mal osztva 2-t ad eredményül.';
  } else {
     echo 'Nincs megoldás.'
  }

Példa II. kimenete:

  10 3-mal osztva 1-t ad eredményül.

A ? és : használata[szerkesztés]

Használat:

  [feltétel] ? [igaz érték] : [hamis érték]

Példa:

  echo "Egy" . ( $a = 1>0 ? "nagyobb" : "nem nagyobb" ) . "nullánál.";

Példa kimenete:

  Egy nagyobb nullánál.

Ciklusok[szerkesztés]

PHP-ban a következő ciklusok léteznek:

A for ciklus[szerkesztés]

Használat:

  for([ciklus változó kezdőérték beállítás];[feltétel];[ciklus változó módosítása]) {
       [parancsok]
   }

Példa:

   for($i=1;$i<=5;$i++) {
       echo "Ez a $i. szám.";
   }

Példa kimenete:

  Ez a 1. szám.
  Ez a 2. szám.
  Ez a 3. szám.
  Ez a 4. szám.
  Ez a 5. szám.


A while ciklus[szerkesztés]

Használat:

  while([feltétel]) {
     [parancsok]
  }

Példa:

   $i=0;
   while($i<=3) {
      echo "Ez a $i. szám.";
      $i++;
   }

Példa kimenete:

  Ez a 1. szám.
  Ez a 2. szám.
  Ez a 3. szám.


A do-while ciklus[szerkesztés]

Ez a ciklus nagyban hasonlít a while ciklushoz.

Használat:

   do {
     [parancsok]
  } while([feltétel]);

A különbség az, hogy a [parancsok] legalább egyszer le fog futni, az első feltételvizsgálat csak ezután történik meg.

Példa:

   $b = 1;
   do {
      echo "\$b = $b";
      $b++;
   } while($b % 2 == 0);

Példa kimenete:

  $b = 1
  $b = 2

Ha a while ciklust használtuk volna, akkor üres lenne a kimenet, hiszen az 1 páratlan szám, viszont így csak azután vizsgáltuk meg, miután a ciklusmagban növeltük 2-re.


A foreach ciklus[szerkesztés]

A foreach ciklus segítségével tömbök elemeit vehetjük sorra, melyek egy ciklus változóba kerülnek. A ciklusmagban azon keresztül érhetjük el a tömb elemét.

Használat:

   foreach([tömb] as [ciklus_változó]) {
     [parancsok]
  }

Példa:

   $entombom = array(1,2,3,4,5);
   echo 'A tömb elemei: ';
   foreach($entombom as $elem) {
      echo $elem.' ';
   }

Példa kimenete:

  A tömb elemei: 1 2 3 4 5

Függvények használata[szerkesztés]

Paraméter nélküli függvények[szerkesztés]

PHP-ban a következőképp hozhatunk létre egy paraméter nélküli függvényt:

  function [függvénynév] () {
     [parancsok]
  }


A függvények használatához meg kell őket hívni. Ez a következő módon történik meg: [függvény neve]();. A függvényt a kódunkban bárhol meghívhatjuk.

Példa:

  function udvozles() {
     echo 'Szervusz!';
  }
  udvozles();

Példa kimenete:

  Szervusz!

Paraméteres függvények[szerkesztés]

A paraméterekkel adatokat tudunk közvetíteni a függvény felé(mint a matematikában). Természetesen tetszőleges számú paramétere lehet a függvényünknek. Használat:

  function [függvénynév] ([paraméternév1], [paraméternév2]) {
     [parancsok]
  }

Ebben az esetben a következő módon kell meghívni a függvényt: [függvény neve]([paraméter1], [paraméter2]); Példa:

  function udvozlesNevvel($nev) {
     echo 'Szervusz, ' . $nev . '!';
  }
  udvozlesNevvel("Bill Gates");

Példa kimenete:

  Szervusz, Bill Gates!

Paraméterek alapértelmezett értéke[szerkesztés]

A függvények deklarálásakor meg lehet adni egy alapértelmezett értéket a paramétereknek. Amennyiben meghíváskor nem adjuk át az adott paramétert, akkor az alapértelemezett értékkel fog számolni a függvény. Arra mindenképp figyeljünk, hogy alapértelmezett értékkel rendelkező paraméterek után nem következhetnek más paraméterek, tehát ezeket célszerű a paraméterlista végére hagyni.

Használat:

  function [függvénynév] ([paraméternév1]=[alapérték], [paraméternév2]=[alapérték]) {
     [parancsok]
  }

Példa:

  function udvozlesNevvel($nev="Felhasználó") {
     echo 'Szervusz, ' . $nev . '!';
  }
  udvozlesNevvel();

Példa kimenete:

  Szervusz, Felhasználó!

A return használata[szerkesztés]

A matematikához hasonlóan a függvények nem csak funkciókat látnak el(pl. kiírás), hanem visszatérési értékük is lehet.

Használat:

  function [függvénynév] ([paraméternév1]=[alapérték], [paraméternév2]=[alapérték]) {
     [parancsok]
     return [érték];
  }

Példa:

  function osszeg($a, $b) {
     $ossz = $a + $b;
     return $ossz;
  }
  echo osszeg(1, 2);

Példa kimenete:

  3

Fájlok beágyazása[szerkesztés]

Nagyobb projectek esetén ha a teljes kódot egyetlen fájlban tároljuk, idővel nehezen olvasható lesz. Ha ezt a nagy fájlt több kisebbre bontjuk szét, könnyebben áttekinthetővé tehetjük a kódunkat. Az így kapott fájlokat be kell hívni a programunkba. A PHP erre 2 lehetőséget kínál: az include és a require.

Include[szerkesztés]

Az include segítségével egy külső fájlt hívhatunk be. Ha a fájl nem létezik, a program futása nem szakad meg, de hibaüzenetet kapunk.

Nézzük például ezt a kódot:

<?php
$valtozo1=1;
$valtozo2=2;
$valtozo3=3;

print $valtozo2;
?>

Ennek a kimenete: 2

A változókat egy külön fájlba tehetjük, aminek a neve valtozo.php. A fájl tartalma:

<?php
$valtozo1=1;
$valtozo2=2;
$valtozo3=3;
?>

Míg az eredeti fájl tartalma a következő lesz:

<?php
include "valtozo.php";
print $valtozo2;
?>

A kimenet: 2

Require[szerkesztés]

A require abban különbözik az include-tól, hogy ha nem találja meg a fájlt, a program futása azonnal megszakad. A valtozo.php már létezik, nézzük a programunk fő részét:

<?php
require "valtozo.php";
print $valtozo2;
?>

A kimenet: 2

Include_once és require_once[szerkesztés]

Az include_once és a require_once abban különböznek az include-tól és a require-től, hogy ha már egyszer beágyaztuk a kért fájlt, azt már még egyszer nem ágyazza be.