PHP

PHP
PHP-logo.svg
Date de bază
Anul publicării: 8 iunie 1995
Proiectant: Rasmus Lerdorf
Dezvoltator: Rasmus Lerdorf , Andi Gutmans , PHP Group, Zend Technologies , Zeev Suraski
Versiunea actuală  8.1.0 Beta 1   (22 iulie 2021)
Implementări importante : Zend Engine , HHVM , Phalanger (Compilator)
Influențată de: C ++ , Perl , C , Java , Tcl , Hypertext Markup Language , JavaScript
Sistem de operare : Sistem de tip Unix , Microsoft Windows
Licență : Licență PHP
www.php.net

PHP ( acronim recursiv și Backronim pentru " P HP: H ypertext P reprocesor " original " P ersonal H ome P age Tools") este un limbaj de scriptare cu sintaxa C și Perl ajar în principal pentru a crea site-uri Web dinamice sau se utilizează aplicații Web . PHP este distribuit ca software gratuit sub licența PHP . PHP se caracterizează prin suport larg de baze de date și integrare a protocolului Internet , precum și disponibilitatea a numeroase biblioteci de funcții .

Bună ziua programului mondial

Una dintre mai multe versiuni posibile ale programului Hello World în PHP:

<?php
    echo 'Hallo Welt!';
?>

poveste

De la lansarea sa în 1995, dezvoltatorii au făcut modificări ample în limbajul de programare. Nucleul limbajului a fost complet reconstruit cu PHP 3. S-au făcut ajustări semnificative cu PHP 5 și PHP 5.3, care pun accentul pe limbajul de programare pe programarea orientată pe obiecte . Cu toate acestea, clasele erau deja utilizabile cu cea de- a patra versiune .

Instrumente personale pentru pagina de pornire (PHP1)

PHP a fost dezvoltat de Rasmus Lerdorf în 1995 . La acea vreme, termenul încă mai însemna Instrumentele personale pentru pagina de pornire și a fost inițial destinat să înlocuiască o colecție de scripturi Perl scrise de Lerdorf pentru a înregistra accesele la CV-ul său online.

PHP / FI (PHP 2)

Lerdorf a creat în curând o versiune mai extinsă în limbajul de programare C , în care PHP este încă dezvoltat astăzi. PHP / FI (FI a reprezentat interpretul formularului ) care a fost lansat în cele din urmă a fost foarte similar cu Perl, deși într-un mod mai limitat.

PHP 3

PHP 3 a fost rescris de Andi Gutmans și Zeev Suraski în 1997, întrucât PHP / FI 2, care fusese lansat între timp, era în opinia lor insuficient pentru comerțul electronic . Lerdorf a cooperat acum cu Gutmans și Suraski, astfel încât dezvoltarea PHP / FI a fost oprită. Versiunea PHP3 a avansat semnificativ răspândirea limbajului de scriptare web PHP. Noul limbaj a fost lansat pur și simplu sub numele PHP , un acronim recursiv pentru PHP: Hypertext Preprocessor , pentru a elimina implicația de utilizare personală care exista în versiunile anterioare de PHP și PHP / FI.

PHP 4

Fondată de Gutmans și Suraski, Zend Technologies Ltd. ulterior a dezvoltat Zend Engine 1, care formează nucleul implementării standard a PHP 4. Cu PHP 4, viteza de execuție a aplicațiilor complexe și securitatea la utilizarea variabilelor globale au fost îmbunătățite. Au fost introduse asistență pentru multe alte servere web, gestionarea sesiunilor, tamponarea ieșirilor și o serie de noi versiuni de limbaj.

Pe măsură ce World Wide Web a crescut rapid la sfârșitul anilor 1990, a existat o mare nevoie de limbaje de scriptare care ar putea fi utilizate pentru a crea site-uri web dinamice. De-a lungul timpului, PHP a devenit mai popular pentru dezvoltarea web decât standardul anterior de facto Perl , deoarece specializarea sa a facilitat învățarea.

Dezvoltarea și suportul pentru PHP 4 au fost întrerupte din 2008.

PHP 5

În vara anului 2004 a fost publicată o nouă etapă de dezvoltare cu versiunea 5.0. Principala diferență față de predecesorul său este Zend Engine II, care utilizează în primul rând un model de obiect îmbunătățit, executând astfel aplicații orientate obiect mai eficient și permițând construcții de limbaj precum supraîncărcarea . Există, de asemenea , excepții , reflectare , integrarea bazei de date SQLite și extensii la manipularea XML și DOM .

Planificată inițial ca succesor timpuriu al PHP 5, dezvoltarea PHP 6 a fost întreruptă. Printre altele, a fost planificat sprijinirea diferitelor standarde Unicode . Unele îmbunătățiri sunt implementate în versiunile PHP 5.3 și mai mari.

Alte posibilități în contextul programării orientate pe obiecte au fost avansate cu PHP 5.3 ( spații de nume , legături statice tardive), 5.4 ( trăsături , matrice și dereferențierea constructorului) și 5.5 ( generatoare ). Versiunea 5.6 a introdus funcții variadice ca o caracteristică de limbă maternă și despachetarea argumentelor pentru a permite utilizarea unui număr variabil de parametri.

La mijlocul anului 2011, dezvoltatorii au decis să standardizeze, conform propriilor declarații, procesul de lansare haotic. În consecință, noile versiuni ar trebui să apară în mod regulat, iar suportul pentru versiunile mai vechi ar trebui să fie garantat cu o perioadă de timp fixă.

Dezvoltarea ulterioară a PHP 5.4 a fost oprită în toamna anului 2015. Actualizările de securitate nu mai sunt disponibile, deoarece PHP 5.4.45 a fost lansat pe 3 septembrie 2015.

Dezvoltarea ulterioară a PHP 5.5 a fost oprită pe 21 iulie 2016.

Suportul activ pentru PHP 5.6 a fost întrerupt pe 1 ianuarie 2017. Asistența de securitate a fost, de asemenea, întreruptă la 31 decembrie 2018. Actualizările de securitate pentru aceste versiuni vor fi disponibile numai în cazuri speciale.

PHP 7

După o discuție despre dacă următoarea versiune PHP ar trebui să reia numele PHP 6 eșuat sau, în schimb, sări peste un număr de versiune și să-l numească PHP 7, s-a anunțat pe 29 iulie 2014 că dezvoltatorii vor vota 58 - 24 pentru Major versiunea numărul 7 au ales. Succesorul PHP 5 se numește oficial PHP 7 .

PHP 7 are cu până la 30 la sută mai puțin timp de execuție decât PHP 5, deoarece tabelele hash au fost implementate recent, printre altele . Datorită diferitelor optimizări ale nucleului PHP, noua versiune necesită, de asemenea, mai puțin spațiu de stocare decât predecesorul său. Componente precum analizoare, lexere și generatoare de coduri bytec au suferit, de asemenea, unele modificări. Prima versiune preliminară (Alpha 1) a fost lansată pe 11 iunie 2015, versiunea finalizată pe 3 decembrie 2015. În timpul dezvoltării PHP 7, compatibilitatea descendentă a fost parțial abandonată și clasa larg răspândită „mysql” a fost abandonată. Funcțiile noi includ excepții ale motorului, clase anonime și funcții CSPRNG . Asistența activă pentru PHP 7.0 s-a încheiat pe 3 decembrie 2017. Exact un an mai târziu, pe 3 decembrie 2018, suportul de securitate pentru această versiune va fi, de asemenea, întrerupt.

PHP 7.1 a fost lansat la începutul lunii decembrie 2016.

La 30 noiembrie 2017, PHP 7.2 a urmat după o fază beta de patru luni. Noile caracteristici ale versiunii actuale sunt destinate în primul rând să ofere mai multă claritate.

PHP 7.3 a fost lansat pe 6 decembrie 2018. Ar trebui să arate o performanță îmbunătățită semnificativ.

Versiunea 7.3.11 este disponibilă din 24 octombrie 2019 după ce a fost dezvăluit că serverele Nginx cu PHP-FPM ar putea fi atacate de la distanță.

PHP 7.4 a fost lansat pe 28 noiembrie 2019.

PHP 8

PHP 8 a fost lansat pe 26 noiembrie 2020. Printre altele, versiunea acceptă compilarea just-in-time și aduce câteva comenzi noi.

distribuție

Pachetul de software LAMP (aici și cu Squid ) include PHP.

PHP a fost implementat pe aproximativ 244 de milioane de site-uri web la începutul anului 2013 și a fost folosit ca limbaj de programare pe partea de server de către 79% din toate site-urile web la începutul anului 2019 . PHP este cel mai des utilizat limbaj de programare pentru crearea de site-uri web pe partea serverului. De asemenea, este preinstalat pe majoritatea gazdelor web .

popularitate

În forma sa originală, PHP este conceput ca un web- limbaj de scripting centrică pentru document web template - uri . Utilizarea pe scară largă a serverului web Apache și a modulului de extensie PHP adecvat permite o furnizare ieftină și cu prag redus de medii de aplicații web pe care software-ul poate fi livrat rapid și ușor ca fișiere de cod sursă simple folosind protocoale standard precum SFTP . În plus, extinderea pas cu pas a documentelor web statice ( HTML ) cu funcții auxiliare mici și blocuri logice gestionabile permite o intrare ușoară în programarea web de pe server. Deoarece utilizarea PHP ca motor de șabloane în această formă este apatridă și este adesea limitată la proceduri gestionabile, programarea în PHP elimină, de asemenea, probleme IT mai dificile și mai aprofundate în multe situații, cum ar fi gestionarea memoriei și a proceselor sau necesitatea funcții de apel invers . Aceste proprietăți sunt unul dintre motivele pentru care PHP este atât de răspândit și popular.

funcționalitate

Prezentarea modului în care funcționează PHP

PHP este un sistem care procesează codul PHP pe partea serverului . Aceasta înseamnă că textul sursă nu este trimis browserului web , ci unui interpret de pe serverul web . Doar ieșirea interpretului PHP este trimisă în browser. În majoritatea cazurilor, acesta este un document HTML , dar PHP poate fi utilizat și pentru a genera alte tipuri de fișiere , cum ar fi imagini sau fișiere PDF .

Pentru a putea executa un fișier PHP în contextul unei aplicații web , este nevoie de un sistem care să poată gestiona instrucțiunile conținute în fișier. Din acest motiv , interpretul este executat de un daemon server sau de un serviciu server, cum ar fi Apache sau IIS, printr-o interfață precum ISAPI sau CGI . Combinația Linux / Windows / macOS ca sistem de operare , Apache ca server web, MySQL ca sistem de baze de date și PHP se numește LAMP (pentru Linux), WAMP (pentru Windows) sau MAMP (pentru Mac OS X). Pachetele LAMP, MAMP și WAMP gata făcute, care fac ca încărcarea individuală și configurarea pachetelor de pe Internet să nu fie necesare, sunt dezvoltate în proiectul XAMPP , de exemplu . Există versiuni pentru Linux, Solaris , Windows și Mac OS X, dar acestea ar trebui utilizate numai pentru medii de testare și dezvoltare.

Deoarece PHP rulează în mod normal într-un mediu de server web, acesta este, de asemenea, supus HTTP apatrid . Fiecare pagină PHP încarcă serverul web prin interpret, iar interpretul procesează din nou textul sursă de fiecare dată când este apelat. Acest lucru încetinește timpul de reacție al serverului și crește sarcina. Pentru a contracara acest lucru, sunt disponibile diferite cache-uri de bytecode care stochează temporar o versiune a programului care a fost pregătită pentru execuție și astfel accelerează accesul la acest fișier data viitoare când este apelat (vezi și secțiunea cache bytecode și articolul PHP accelerator ).

PHP poate fi, de asemenea, utilizat pentru a scrie scripturi orientate pe linia de comandă, care sunt independente de Internet. Extensia Qt și extensia GTK chiar și oferă o interfață de programare pentru o interfață grafică de utilizator pentru care este nevoie de nici un server de web , nici un browser. Primele versiuni ale interfețelor către interfața grafică cu utilizatorul și către alte funcții ale sistemului de operare erau rare și rareori folosite. Pe de altă parte, versiunea 2 PHP-GTK dezvoltată în prezent are ca scop acoperirea API-ului GTK cu 95%. În prezent, însă, PHP este utilizat în principal pe serverele web.

sintaxă

Comentarii

Trei tipuri diferite de comentarii sunt posibile în PHP.

// einzeiliger Kommentar

bis Version 7.4: # einzeiliger Kommentar

/* mehrzeiliger
   Kommentar */

PHP și HTML

Un script PHP poate fi integrat în HTML.

<!DOCTYPE HTML>
<html>
   <head>
       <title>Hallo-Welt-Beispiel</title>
   </head>
   <body>
       <?php echo 'Hallo Welt!'; ?>
   </body>
</html>

Integrarea fișierelor

Fișierele externe pot fi integrate într-un script PHP. Există patru instrucțiuni diferite pentru a face acest lucru.

require 'pfad/datei.php';      // wenn die Datei nicht eingebunden werden kann, folgt ein Fehler
include 'pfad/datei.php';      // wenn die Datei nicht eingebunden werden kann, folgt eine Warnung
require_once 'pfad/datei.php'; // bindet die Datei nur ein, wenn sie zuvor noch nicht eingebunden wurde
include_once 'pfad/datei.php'; // bindet die Datei nur ein, wenn sie zuvor noch nicht eingebunden wurde

variabile

Variabilele nu trebuie declarate în PHP . Numele variabilelor trebuie să înceapă cu semnul dolarului .

$variable = 'wert';

Constante

Constantele trebuie declarate în PHP . Acestea sunt generate folosind define('name', wert);global sau în clase folosind const name = wert;local. De la PHP 7.1, constantele de clasă pot avea, de asemenea, o vizibilitate (fără specificații explicite, ele sunt automate ca în versiunile anterioare PHP public). Este o practică obișnuită să scrii cu majuscule nume constante, dar acest lucru nu este cerut de limbă.

define('MEINE_KONSTANTE', 'wert');

class MyClass
{
    protected const KLASSEN_KONSTANTE = 420;
}

O constantă nu poate fi editată ulterior. Constantele de clasă există o dată pe clasă, nu pe instanță a clasei și se comportă astfel ca proprietăți statice ale clasei.

Tipuri de date

Tipul de date al unei variabile nu este de obicei determinată de programator în codul sursă, dar în mod automat în timpul rulării . Rezultă din contextul în care este utilizată o variabilă. Sunt posibile conversii de tip explicit . Începând cu versiunea 7, funcțiile pot prescrie, de asemenea, tipuri simple pentru parametrii și valoarea lor de returnare - acest lucru a fost deja posibil înainte pentru argumentele care conțin tablouri sau clase.

// Skalare Datentypen
$wahrheitswert = true;         // boolean
$ganzzahl = 5;                 // integer
$kommazahl = 4.71;             // float (oder double)
$zeichenkette = 'foo';         // string

// Zusammengesetzte Datentypen
$feld = array('foo', 'bar');   // array
$objekt = new stdClass();      // object
$funktion = function () {      // callable
    echo 'hello world!';
};

// Spezielle Datentypen
$resource = fopen("foo", "w"); // resource
$variable = NULL;              // NULL

execuţie

În general

PHP este de obicei folosit ca un modul server, adică ca parte a proceselor serverului web sau prin FastCGI . Dacă PHP este folosit ca program CGI , acest lucru poate avea un efect negativ asupra vitezei de execuție, deoarece o nouă instanță de interpret PHP este pornită pentru fiecare cerere HTTP.

Memorarea în cache a codului de bytecode

Cu motorul Zend, un script PHP este mai întâi tradus într-un bytecode ( independent de platformă) ( cod opțional Zend), din care trebuie generat codul mașinii pentru executare. Generarea redundantă de coduri opționale poate fi evitată prin utilizarea unui cache bytecode . Până la versiunea 5.4 PHP nu avea o memorie cache bytecode integrată, ceea ce însemna că un script trebuia să fie recompilat de fiecare dată când a fost apelat. Pentru a contracara acest lucru, au fost dezvoltate unele extensii care actualizează această funcționalitate, cum ar fi eAccelerator , alternativa PHP Cache , XCache și Zend Optimizer comercial . Începând cu versiunea PHP 5.5, Zend Optimizer + a fost acum integrat în limbajul de scriptare.

O memorie cache bytecode poate realiza o creștere semnificativă a vitezei de execuție, în special cu scripturi extinse.

Compilare

PHP Compiler (PHC) este un compilator open source de Paul Biggar, care traduce scripturile PHP în cod C optimizat și apoi le execută ca un server web separat. Baza pentru AMP este teza de doctorat a lui Biggar din 2009 și mulți ani de cercetare pe concepte pentru convertirea limbajelor script în limbi compilate. Cu HipHop , un alt software gratuit pentru traducerea codului PHP în cod C ++ optimizat, care poate fi compilat, există din 2010, ceea ce, potrivit producătorului, mărește performanța acolo cu aproximativ dublu în medie. HipHop a fost dezvoltat de Facebook pentru a reduce încărcarea serverului (conform Facebook cu aproximativ 40%). Poate fi găsit ca software open source pe GitHub .

Aplicații PHP obișnuite

O selecție a unor aplicații utilizate pe scară largă dezvoltate în PHP:

Software pentru forum
Invision Power Board , XenForo , MyBB , phpBB , Simple Machines Forum , vBulletin și WoltLab Burning Board
Cadruri web
Laravel , Zend Framework , Symfony , CakePHP , CodeIgniter , Neos Flow , Horde , WoltLab Community Framework , Yii
Interfețe grafice de utilizator pentru gestionarea bazelor de date (de ex. MySQL )
phpMyAdmin , phpPgAdmin
Managementul conținutului (CMS) și sistemele de bloguri
WordPress , TYPO3 , Joomla , Xoops , Drupal , Contao , WebEdition , Serendipity
Sisteme de management al relației cu clienții (CRM)
SugarCRM și Vtiger
Aplicații de comerț electronic
osCommerce , Magento , PrestaShop , Pimcore , Shopware , OXID eShop
Management de proiect
EGroupware
Galerii de imagini
Coppermine , 4Images , easyImage
Alții
MediaWiki , DokuWiki

Licență și referință

PHP 3 a fost distribuit sub GNU General Public License (GPL). De la versiunea 4, PHP este distribuit sub licența PHP , întrucât noul parser , Zend Engine , este publicat de producătorul Zend sub o licență care nu este compatibilă cu GPL. Licența PHP este o licență software care permite utilizarea și modificarea gratuită a codului sursă . Software-ul poate fi descărcat gratuit de pe Internet; În plus, PHP este, de asemenea, inclus în domeniul livrării unor sisteme de operare (cum ar fi unele distribuții Linux sau macOS ).

Progrese

Orientarea obiectului

Versiunea 5 acceptă PHP prin încapsularea destructorilor de date și excepții de gestionare a excepțiilor, posibilități îmbunătățite și extinse de programare orientată obiect. În PHP 5, variabilele obiect sunt doar referiri la obiecte și nu, la fel ca în PHP 4, ele însele obiecte. Versiunile curente folosesc alte concepte de programare orientate-obiect, astfel încât namespace de la versiunea 5.3 și trăsături de la versiunea 5.4 sunt acceptate.

Conexiune la baza de date

Cu PDO la nivel de abstractizare a bazei de date orientate obiect , accesul inconsistent criticat la diferite baze de date din versiunea 5.1 a fost contracarat.

Optimizarea stocării

În PHP 5.3, s-a realizat o îmbunătățire semnificativă a cerințelor de memorie ale unui script PHP în timpul rulării folosind un colector de gunoi intern . De atunci, o instalare suplimentară a Zend Optimizer nu mai este necesară.

Server web

Din versiunea 5.4 este integrat un server web simplu , care poate fi configurat prin linia de comandă . Nu este recomandat pentru utilizare productivă.

Unicode

În versiunea 5.6 setul de caractere standard a fost schimbat din ISO-8859-1 în UTF-8. Pentru a asigura procesarea sigură a Unicode, trebuie folosite variantele multi-octet ale funcțiilor de procesare șir. Deci „mb_substr” în loc de „substr” sau „mb_strpos” în loc de „strpos”. „Mb” înseamnă „multi octeți”.

Sesiuni

Datele stocate în variabile obișnuite sunt disponibile numai în cadrul unei cereri HTTP (în așa-numitul domeniu de solicitare ) și sunt șterse din memorie la sfârșitul vizualizării paginii. Cu toate acestea, o vizită a unui utilizator constă de obicei în mai multe pagini vizualizate. Variabilele sesiunii sunt folosite pentru a face disponibile date precum produsele dintr-un coș de cumpărături pentru o întreagă sesiune (în domeniul sesiunii ). În configurația standard, PHP salvează datele sesiunii în sistemul de fișiere al serverului web. Datele care ar trebui să fie disponibile între sesiuni (în domeniul aplicației ) trebuie stocate pe serverul web în alte moduri.

evaluare

Unele module PHP nu sunt sigure pentru fire .

Tastarea slabă a PHP este parte a conceptului, dar , de asemenea , o posibilă sursă de erori. O eroare apare, de exemplu, atunci când expresiile numerice trebuie comparate cu expresiile șir (operator: == ), prin care conversia de tip implicită poate duce la rezultate neașteptate dacă nu există operator pentru comparații sigure de tip (operator: ===) folosit. În plus, în PHP nu este posibil să forțezi o declarație variabilă . Mai degrabă, variabilele sunt declarate implicit atunci când sunt utilizate pentru prima dată. Această comoditate înseamnă că erorile de tastare în numele variabilelor pot duce la erori de program greu de găsit. Pentru a găsi astfel de probleme, se poate activa nivelul jurnal E_NOTICE. Acest lucru duce la un mesaj de eroare atunci când se utilizează o variabilă neinițializată.

Există momente în care funcțiile nu aruncă o excepție în cazul unei erori. Aceasta înseamnă că tratarea standardizată a erorilor nu este posibilă. Cu ajutorul „set_error_handler”, tratarea individuală a erorilor poate fi definită pentru aceste cazuri. De la PHP 7, multe erori fatale pot fi surprinse folosind gestionarea excepțiilor similară cu excepțiile.

literatură

Introduceri generale

Subiecte speciale

Link-uri web

Commons : PHP  - colecție de imagini, videoclipuri și fișiere audio
Wikibooks: Dezvoltare de site-uri web: PHP  - Materiale de învățare și predare
Wikționar: PHP  - explicații privind semnificațiile, originea cuvintelor, sinonime, traduceri

Dovezi individuale

  1. Grupuri Google . (accesat la 11 decembrie 2018).
  2. PHP: Istoria PHP - Manual . (accesat la 25 august 2016).
  3. lerdorf.com . (Engleză, accesat la 31 mai 2021).
  4. a b php.net .
  5. www.technotification.com . (accesat la 14 august 2018).
  6. PHP 8.1.0 Beta 1 disponibil pentru testare . 22 iulie 2021 (accesat pe 29 iulie 2021).
  7. a b c PHP: Prefață - Manual . (accesat la 25 august 2016).
  8. ^ Rasmus Lerdorf | PHP pe hormoni . 29 iulie 2013 (accesat la 19 martie 2016).
  9. php.net . (accesat la 25 august 2016).
  10. ^ Rasmus Lerdorf: „Obiectivul de proiectare al PHP de la bun început este foarte simplu. Pentru a rezolva problema web comună. Asta e. "
  11. Manual PHP: Extensii de baze de date
  12. Manual PHP: Extensii
  13. ^ Anunț de Rasmus Lerdorf despre PHP 1.0 în grupul de știri comp.infosystems.www.authoring.cgi
  14. Istoria PHP pe php.net, accesat la 4 septembrie 2013.
  15. Resetarea PHP6
  16. ^ Bine, rău și urât: ce s-a întâmplat cu Unicode și PHP 6
  17. O prezentare generală a dezvoltării PHP 5.4 , heise.de, accesat pe 21 martie 2013.
  18. Caracteristici noi Prezentare generală a noilor funcții pentru PHP 5.4 (accesat pe 21 martie 2013)
  19. Ce este nou în PHP 5.6? (Nu mai este disponibil online.) În: cyon.ch. Arhivat din original la 24 martie 2016 ; accesat pe 16 martie 2016 .
  20. RFC: releaseprocess , draft and vote on a unified release process, wiki.php.net (engleză), accesat la 21 martie 2013.
  21. PHP: sucursale neacceptate. În: secure.php.net. Adus la 16 martie 2016 .
  22. heise.de
  23. Versiuni acceptate , php.net, engleză
  24. PHP: News Archive - 2016. În: php.net. Adus la 26 iulie 2016 .
  25. PHP: Versiuni acceptate. În: secure.php.net. Adus la 16 martie 2016 .
  26. php.internals: Re: Numele următoarei versiuni PHP (din nou)
  27. PHP RFC: Numele următoarei versiuni a PHP
  28. PHP7: PHP reduce semnificativ cerințele de memorie matrice , Golem.de
  29. PHP7: timpi mai scurți de încărcare și acces pe web. În: Ghid digital 1 și 1. 11 ianuarie 2018, accesat la 15 septembrie 2018 .
  30. PHP întrerupe compatibilitatea înapoi
  31. Versiuni acceptate în prezent. php.net, accesat la 22 noiembrie 2018 .
  32. Limbaje de programare: PHP 7.2 va fi lansat la timp. În: heise.de. Adus la 4 decembrie 2017 .
  33. PHP 7 ChangeLog. În: php.net. Accesat la 21 noiembrie 2019 .
  34. Alexander Neumann: Actualizare lansată: Ce este nou în PHP 7.3. În: heise.de. 6 decembrie 2018, accesat la 16 decembrie 2018 .
  35. heise online: Actualizările pentru PHP7: serverele NGINX cu PHP-FPM au fost vulnerabile de la distanță. Adus pe 29 octombrie 2019 .
  36. CVE-2019-11043: Vulnerabilitatea în PHP-FPM ar putea duce la executarea codului la distanță pe nginx. 24 octombrie 2019, accesat pe 29 octombrie 2019 (germană).
  37. PHP 7.4.0 Lansat! În: php.net. Accesat la 1 decembrie 2019 .
  38. Lansat PHP 8.0.0! În: php.net. 26 noiembrie 2020, accesat 26 noiembrie 2020 .
  39. PHP crește și crește , rezultatele unui studiu Netcraft , ianuarie 2013 (engleză), accesat la 1 februarie 2013.
  40. Utilizarea limbajelor de programare pe partea de server pentru site-uri web. Adus la 16 aprilie 2019 .
  41. Tendințe istorice anuale în utilizarea limbajelor de programare pe partea de server pentru site-uri web. Adus pe 20 ianuarie 2015 .
  42. Avertisment de securitate de la dezvoltatorii XAMPP , apachefriends.org, accesat la 4 septembrie 2013.
  43. php.net (engleză), accesat la 17 iunie 2007.
  44. Cache Opcode: Zend Optimizer + va fi integrat în PHP 5.5 , golem.de
  45. ^ Sascha A. Carlin: PHP on Fire: cinci cache-uri Opcode comparate. În: itst.net. 15 octombrie 2006, accesat la 29 iunie 2010 .
  46. ^ Paul Biggar: PHP Compiler (PHC) bazat pe o teză de doctorat de câțiva ani. 1 octombrie 2009, accesat la 29 iulie 2011 .
  47. ^ Paul Biggar: Proiectarea și implementarea unui compilator Ahead-of-Time pentru PHP. Trinity College Dublin, 1 octombrie 2009, accesat pe 29 iulie 2011 .
  48. Alexander Neumann: Facebook vrea să accelereze PHP. În: heise Developer. heise Zeitschriften Verlag, 3 februarie 2010, accesat la 23 februarie 2010 .
  49. Manual PHP: Spații de nume
  50. PHP: Descrierea directivelor php.ini ale nucleului limbii - Manual. Adus pe 27 decembrie 2019 .
  51. PHP: Funcții șir multibyte - Manual. Adus pe 27 decembrie 2019 .
  52. manual php mb_substr
  53. manual php mb_strpos
  54. Stephan Schmidt: Modele de proiectare PHP,. Ediția a II-a. O'Reilly, Köln 2009, pp. 403f.
  55. Manual PHP: opțiune error_reporting
  56. set_error_handler - Specifică o funcție definită de utilizator pentru gestionarea erorilor , documentație PHP