PHP este un limbaj de programare. Numele PHP provine din limba engleză și este un acronim recursiv : Php: Hypertext Preprocessor. Folosit inițial pentru a produce pagini web dinamice, este folosit pe scară largă în dezvoltarea paginilor și aplicațiilor web. Se folosește în principal înglobat în codul HTML, dar începând de la versiunea 4.3.0 se poate folosi și în mod „linie de comandă” (CLI), permițând crearea de aplicații independente. Este unul din cele mai importante limbaje de programare web open-source și server-side, existând versiuni disponibile pentru majoritatea web serverelor și pentru toate sistemele de operare. Conform statisticilor este instalat pe 20 de milioane de site-uri web și pe 1 milion de servere web. Este disponibil sub Licenṭa PHP ṣi Free Software Foundation îl consideră a fi un software liber.
Inițial, limbajul a fost dezvoltat de inventatorul său, Rasmus Lerdorf. Odată cu creșterea numărului de utilizatori, dezvoltarea a fost preluată de o nouă entitate, numită The PHP Group (Grupul PHP).
Istoric PHP însemna inițial Personal Home Page.php.net/history PHP a fost început în 1994 ca o extensie a limbajului server-side Perl, și apoi ca o serie de CGI-uri compilate de către Rasmus Lerdorf, pentru a genera un curriculum vitae și pentru a urmări numărul de vizitatori ai unui site. Apoi a evoluat în PHP/FI 2.0, dar proiectul open-source a început să ia amploare după ce Zeev Suraski și Andi Gutmans, de la Technion au lansat o nouă versiune a interpretorului PHP în vara anului 1998, această versiune primind numele de PHP 3.0. Tot ei au schimbat și numele în acronimul recursiv de acum, până atunci PHP fiind cunoscut ca Personal Home Page Tools. Apoi Suraski și Gutmans au rescris baza limbajului, producând astfel și Zend Engine în 1999. În mai 2000 a fost lansat PHP 4.0, având la bază Zend Engine 1.0.
PHP 5 Pe 13 iulie 2004 a fost lansat PHP 5, cu Zend Engine II, ce a adus și o orientare obiect mai pronunțată și suportând mai multe caracteristici ale acestui tip de programare.
PHP 5 aduce mai multe noutăți față de versiunea 4: Suport îmbunătățit pentru OOP Introduce extensia PDO - PHP Data Objects, care definește o modalitate facilă și consistentă de accesare a diferitelor baze de date Îmbunătățiri de performanță Suport îmbunătățit pentru MySQL și MSSQL Suport nativ pentru SQLite Suport SOAP integrat Iteratori pentru date Controlul erorilor prin tratarea de excepții
La sfârșitul lui 2007 doar versiunea 5.x mai era întreținută, deoarece în data de 13 iulie 2007 (exact la 3 ani după lansarea PHP5), PHP Group a anunțat că PHP4 va fi scos din uz pe 31 decembrie 2007, deși prognozează că anumite upgrade-uri de securitate se vor oferi până pe 8 august 2008.php.net 2007 news archive. Dezvoltarea la PHP 6 începuse deja în decembrie 2007 și urmează să fie oferit odată cu scoaterea din uz a PHP4.
PHP 6 PHP 6 are următoarea agendă de îmbunătățiri și modificări: îmbunătățirea suportului pentru Unicode retragerea definitivă a unor funcții ca register_globals și magic_quotes, și a variabilelor tip $HTTP_*_VARS var va fi un alias pentru public, și folosirea lui va ridica o atenționare E_STRICT. suport pentru int pe 64 biți. taguri tip ASP sunt retrase definitiv. XMLReader, XMLWriter, Fileinfo vor face parte din distribuția principală următoarele pachete au fost scoase din distribuția principală: Freetype1, GD1, mime_magic funcția ereg() nu mai este disponibilă instanțierea obiectelor prin referință (& new Obiect()) generează o eroare E_STRICT. erorile tip E_STRICT sunt incluse în E_ALL. adăugarea instrucțiunii goto permite salturi la un alt bloc de comenzi. namespace, import, și goto devin cuvinte rezervate. accesarea caracterelor într-un șir (string) se face prin operatorul []. {} se scoate din uz ( ex: $str funcționează, $str{42} nu funcționează) constantele FILE_BINARY și FILE_TEXT devin disponibile pentru folosirea în funcții de citire/scriere fișiere foreach va suporta array multi dimensional: foreach($a as $b => list($c, $d)) pentru operatorul ternar expresia pentru valoarea true nu mai este obligatorie ($a = $s ?: ‘b’; // returns $a = $s;) opțiunea safe_mode a fost înlăturată. operatorul and a fost înlăturat. funcția microtime() returnează un float. zend.ze1_compatibility_mode a fost înlăturat.
Istoricul versiunilor thumb|855x855px|Sursa: http://php.net/supported-versions.php + KeyCuloareTipul versiunii DevelopmentRosuVersiune vecheNu mai este dezvoltataGalbenVersiune stabilaRemedieri de securitateVerdeVersiune stabilaRemedieri erori si probleme de securitateAlbastruVersiune viitoareFuncții noi
Versiune Data lansare Support pana Note 1.0 1995-06-08 Nume oficial "Personal Home Page Tools (PHP Tools)". Aceasta este prima folosire a numelui "PHP". 2.0 1997-11-01 Nume oficial "PHP/FI 2.0". 3.0 1998-06-06 2000-10-20 4.0 2000-05-22 2001-06-23 4.1 2001-12-10 2002-03-12 4.2 2002-04-22 2002-09-06 4.3 2002-12-27 2005-03-31 4.4 2005-07-11 2008-08-07 5.0 2004-07-13 2005-09-05 5.1 2005-11-24 2006-08-24 5.2 2006-11-02 2011-01-06 5.3 2009-06-30 2014-08-14 5.4 2012-03-01 2015-09-03 5.5 2013-06-20 Iunie 2016 5.6 2014-08-28 August 2017 6.x Versiune abandonata a PHP care plănuia să includă suport nativ Unicode support. 7.0 2015-12-03 3 ani după lansare 7.1 2016 3 ani după lansare
Popularitate
PHP-ul este unul din cele mai folosite limbaje de programare server-side, conform unui studiu efectuat de Netcraft în aprilie 2002, apărând pe 9 din cele 37 milioane de domenii cercetate în studiu. De asemenea, există un grafic al creșterii folosirii PHP-ului pe site-ul oficial . Popularitatea de care se bucură acest limbaj de programare se datorează următoarelor caracteristici : Familiaritatea : sintaxa limbajului este foarte ușoară combinând sintaxele unora din cele mai populare limbaje Perl sau C; Simplitatea : sintaxa limbajului este destul de liberă. Nu este nevoie de includere de biblioteci sau de directive de compilare, codul PHP inclus într-un document executându-se între marcajele speciale; Eficiența : PHP-ul se folosește de mecanisme de alocare a resurselor, foarte necesare unui mediu multiutilizator, așa cum este web-ul; Securitate : PHP-ul pune la dispoziția programatorului un set flexibil și eficient de măsuri de siguranță; Flexibilitate : fiind apărut din necesitatea dezvoltării web-ului, PHP a fost modularizat pentru a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus, server etc.; Gratuitate : este probabil cea mai importantă caracteristică a PHP-ului. Dezvoltarea PHP-ului sub licența open-source a determinat adaptarea rapidă a PHP-ului la nevoile web-ului, eficientizarea și securizarea codului.
Utilizare
PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca și C-ul, Perl-ul sau începând de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinație a celor trei. Datorită modularității sale poate fi folosit și pentru a dezvolta aplicații de sine stătătoare, de exemplu în combinație cu PHP-GTK sau poate fi folosit ca Perl sau Python în linia de comandă. Probabil una din cele mai importante facilități ale limbajului este conlucrarea cu majoritatea bazelor de date relaționale, de la MySQL și până la Oracle, trecând prin MS Sql Server, PostgreSQL, sau DB2.
PHP poate rula pe majoritatea sistemelor de operare, de la UNIX, Windows, sau Mac OS X și poate interacționa cu majoritatea serverelor web. Codul dumneavoastră PHP este interpretat de serverul WEB și generează un cod HTML care va fi văzut de utilizator (clientului -browserului- fiindu-i transmis numai cod HTML).
Arhitectura tip LAMP a devenit populară în industria web ca modalitate rapidă, gratuită și integrată de dezvoltare a aplicațiilor. Alături de Linux, Apache și Mysql, PHP reprezintă litera P, deși uneori aceasta se referă la Python sau Perl. Linux ocupă rolul de sistem de operare pentru toate celelalte aplicații, MySQL gestionează bazele de date, Apache are rol de server web, iar PHP are rol de interpretator și comunicator între acestea.
PHP folosește extensii specifice pentru fișierele sale: .php, .php3, .ph3, .php4, .inc, .phtml. Aceste fișiere sunt interpretate de către serverul web iar rezultatul este trimis în formă de text sau cod HTML către browser-ul clientului.File Extension .PHP Details
Tipuri de date interne Boolean - valori logice tip adevărat sau false, similare cu cele din C++ sau Perl. Integer - numere întregi (în baza 10, 2 sau 16). Valoarea maximă depinde de sistem și de tipul de integer. Tipul poate fi "signed" („cu semn”) sau "unsigned" („fără semn”), adică dependent de semnul + sau − sau independent de acestea. Valorile pentru integer unsigned sunt mai mari decât cele pentru signed. Sistemele pe 32 bits pot crea numere întregi cu semn între -2147483648 și 2147483647 ( 2^31-1 ). Maximul pentru sisteme pe 64 bits este 9223372036854775807. Float - cunoscute ca numere reale. Valorile maxime sunt de asemenea dependente de platformă, in general cu un maxim de ~1.8e308 cu o precizie de 16 zecimale după virgulă (formatul 64 bits IEEE). String - șiruri de caractere. Înainte de PHP6, un caracter era echivalent cu un byte. Nu există limitări pentru lungimea unui șir, în afara memoriei alocate PHP. Array - în PHP un array este un tip de data care conține un grup de elemente. Fiecare element are un indice intern în grup, iar fiecărui indice îi corespunde o valoare - elementul în sine. Un astfel de grup poate fi folosit ca o simulare pentru diverse situații matematice precum vectori, serii, dicționare de elemente, liste ordonate, matrici sau matrici de matrici. Indicii și valorile unui grup pot fi orice tip de data interna PHP (cu excepții: obiectele, resursele și null nu pot fi indici). Obiecte - O clasa este o colecție de proprietăți și funcții având o logică comună. Obiectele sunt instanțe ale unei clase, în care proprietățile obiectului primesc valori specifice. Vezi POO - programarea orientată pe obiecte. Resurse - acestea sunt variabile speciale care conțin legături cu resurse externe PHP. De exemplu, conexiunea cu o bază de date este o resursa deschisă și menținută cu ajutorul unor funcții special definite pentru aceasta muncă. NULL - este un tip special de dată, care semnifică că variabila respectivă nu a fost definită și că nu are valoare sau valoarea e necunoscută.
Funcții PHP are sute de funcții incorporate și alte câteva mii disponibile prin intermediul extensiilorPHP: Informații de referință despre funcții - Manual.
Versiunile 5.2 și anterioare În aceste versiuni funcțiile nu sunt obiecte de prima clasă. Aceasta înseamnă că funcțiile nu pot fi create dinamic în timpul executării programului și că pot fi chemate doar prin numele dat când au fost definite. Utilizatorul poate crea funcții în orice moment în program. În acest exemplu cuvântul cheie function definește funcția cu numele adauga care primește un număr de 2 parametri de intrare și returnează suma acestora. function adauga($x, $y) { return $x + $y; }
echo adauga( 2, 4); // returnează 6
Versiunile 5.3 și mai noi PHP are suport pentru funcții de rangul întâi și pentru funcții anonime, precum cele folosite în Javascript. function getAdder($x) { return function ($y) use ($x) { // or: lexical $x; return $x + $y;
Pentru mai multe detalii: Lamda functions and closures RFC.
Obiecte