PHP

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

PHP este un limbaj de scripting de uz general utilizat pe scară largă, care este potrivit în special pentru dezvoltarea web și poate fi încorporat în HTML.

PHP este un limbaj de scriptare open source, cu scop general, pe partea de server, proiectat inițial pentru dezvoltarea web pentru a produce pagini web dinamice. Este unul dintre primele limbaje de scripting dezvoltate pe partea de server care este încorporat într-un document sursă HTML, mai degrabă decât apelarea unui fișier extern pentru a procesa date. Codul este interpretat de un server Web cu un modul de procesor PHP care generează pagina Web rezultată. De asemenea, a evoluat pentru a include o capacitate de interfață de linie de comandă și poate fi utilizat în aplicații grafice independente.

Dacă sunteți nou în PHP și doriți să vă faceți o idee despre cum funcționează, încercați tutorialul introductiv.

După aceea, consultați manualul online.

Ce este nou

PHP 8.4 este o actualizare majoră a limbajului PHP. Conține multe funcții noi, cum ar fi cârlige de proprietate, vizibilitate asimetrică, un API DOM actualizat, îmbunătățiri de performanță, remedieri de erori și curățare generală.

Această versiune marchează cea mai recentă versiune minoră a limbajului PHP.

PHP 8.4 vine cu numeroase îmbunătățiri și funcții noi, cum ar fi:

  • Cârlige de proprietate
  • Vizibilitatea proprietății asimetrice
  • Obiecte leneșe
  • Subclase specifice driverului PDO
  • tipul de obiect BCMath
  • Si mult mai multe…

BcMath:

  • (RFC) Adăugați bcfloor, bcceil și bcround la BCMath.
  • Îmbunătățiți performanța.
  • Ajustați parametrul $mode al lui bcround() pentru a accepta numai enumerarea RoundingMode.
  • S-a remediat LONG_MAX în ext.
  • S-a rezolvat bcdiv() div câte unul.
  • (RFC) Suportă tipuri de obiecte în BCMath.
  • îmbunătățirea performanței bcpow().
  • ext/bcmath: Verificați depășirea scalei.
  • (RFC) ext/bcmath: bcdivmod adăugat.
  • Remediați GH-15968 (Evitați convertirea obiectelor în șiruri în calculele operatorului).
  • S-a remediat eroarea GH-16265 (Adăugat caz de returnare timpurie când rezultatul este 0) (Saki Takamachi).
  • S-a remediat o eroare GH-16262 (reparat o eroare în care size_t depășește) (Saki Takamachi).
  • S-a remediat GH-16236 (reparat o eroare în BcMath\Number::pow() și bcpow() la creșterea puterilor negative de 0) (Saki Takamachi).

Miez:

  • S-a adăugat implementarea zend_call_stack_get pentru NetBSD, DragonFlyBSD, Solaris și Haiku.
  • Verificări ifunc activate pe FreeBSD din versiunile 12.x.
  • S-a schimbat tipul de constante PHP_DEBUG și PHP_ZTS la bool.
  • S-a remediat eroarea GH-13142 (Numele variabilei nedefinite este scurtat când conține \0).
  • S-a remediat eroarea GH-13178 (pozițiile iteratorului sunt incorecte la conversia matricei împachetate în hashed).
  • S-a rezolvat montarea zend fiber pentru modul implicit Solaris (32 de biți).
  • S-a rezolvat dimensiunea stivei de apeluri zend pentru macOs/arm64.
  • S-a adăugat suport pentru Zend Max Execution Timer pe FreeBSD.
  • Asigurați-vă că stiva de fibre nu este susținută de THP.
  • Implementați GH-13609 (Dump înfășurat obiect în clasa WeakReference).
  • S-a adăugat suport pentru ansamblul arcului sparc64 pentru fibra zend.
  • S-a remediat GH-13581 fără spațiu disponibil pentru TLS pe ​​NetBSD.
  • S-a adăugat suport pentru fibră Sys-V loongarch64.
  • Numele de închidere ajustate pentru a include numele funcției părinte.
  • Îmbunătățiți caracterul aleatoriu al numelor de fișiere încărcate și ale fișierelor create de tempnam().
  • S-au adăugat apeluri gc și de închidere la handlere personalizate zend_mm.
  • S-a remediat eroarea GH-14650 (Calculează dimensiunea paginilor înainte de alocarea memoriei).
  • S-a remediat eroarea GH-11928 (–enable-re2c-cgoto nu adaugă steag-ul -g).
  • S-a adăugat atributul #(\Deprecated).
  • Fix GH-11389 (Permite suspendarea fibrelor în destructori).
  • S-a remediat eroarea GH-14801 (remediere pentru armv7).
  • S-au implementat cârlige de proprietate RFC.
  • Remediați GH-14978 (build-ul phpize cu extensia xmlreader).
  • Aruncă o excepție de eroare atunci când întâlnești recursivitate în timpul comparării, mai degrabă decât o eroare fatală.
  • S-a adăugat cstddef include lipsă pentru versiunile C++.
  • Scripturile sistemului de compilare au fost actualizate config.guess la 2024-07-27 și config.sub la 2024-05-27.
  • S-a remediat eroarea GH-15240 (recursie infinită în cârligul de trăsătură).
  • S-a remediat eroarea GH-15140 (lipsește verificarea variației pentru setul abstract cu tip asimetric).
  • S-a remediat eroarea GH-15181 (Managerul de ieșire dezactivat este eliminat din nou).
  • Transmiterea E_USER_ERROR către trigger_error() este acum depreciată.
  • S-a remediat eroarea GH-15292 (detecția dinamică AVX este întreruptă pentru MSVC).
  • Utilizarea „_” ca nume de clasă este acum depreciată.
  • Ieșirea dintr-un spațiu de nume șterge acum simbolurile văzute.
  • Construcțiile limbajului de ieșire (și mor) se comportă acum mai mult ca o funcție. Acestea pot fi transmise apelabile apreciate, sunt afectate de instrucțiunea strict_types declare și acum efectuează constrângerile de tip obișnuite în loc să arunce orice valoare non-întreg într-un șir. Ca atare, trecerea unor tipuri nevalide la ieșire/moare poate duce acum la o eroare de tip TypeError.
  • S-a remediat eroarea GH-15438 (Cârligele pe proprietățile promovate de constructor fără vizibilitate sunt ignorate).
  • S-a remediat eroarea GH-15419 (lipsește verificarea incompatibilității numai în citire + cârlig pentru clasele numai în citire).
  • S-a remediat eroarea GH-15187 (diverse probleme cu iteratorul de obiecte conectate).
  • S-a remediat eroarea GH-15456 (Crash în get_class_vars() pe proprietățile virtuale).
  • S-a remediat eroarea GH-15501 (Windows HAVE_
    _H macrocomenzi definite la 1 sau nedefinite).
  • Vizibilitate asimetrică implementată pentru proprietăți.
  • S-a remediat eroarea GH-15644 (Vizibilitatea asimetrică nu funcționează cu cârlige).
  • Obiecte leneșe implementate RFC.
  • S-a remediat eroarea GH-15686 (Clădirea iconv partajată cu biblioteca externă iconv).
  • S-a remediat eroarea lipsă la adăugarea vizibilității asimetrice proprietății virtuale unilaterale.
  • S-a remediat eroarea GH-15693 (includere inutilă în binarul main.c bloats).
  • S-a remediat eroarea GH-15731 (validarea AllowDynamicProperties ar trebui să fie eroată pe enumerari).
  • S-a remediat eroarea GH-16040 (Utilizare după-liber de obiect eliberat în cârlig).
  • S-a remediat eroarea GH-16026 (Reutilizarea fibrei dtor în timpul opririi).
  • S-a remediat eroarea GH-15999 (eșecul afirmației zend_std_write_property() cu obiecte leneșe).
  • S-a remediat eroarea GH-15960 (carcase marginale Foreach cu obiecte leneșe).
  • S-a remediat eroarea GH-16185 (diverse probleme cu iteratorul de obiecte conectate).
  • S-a remediat eroarea OSS-Fuzz #371445205 (Heap-use-after-free în attr_free).
  • S-a remediat o eroare lipsă la adăugarea vizibilității asimetrice la proprietățile statice.
  • S-a remediat eroarea OSS-Fuzz #71407 (NUll-dereference WRITE în zend_lazy_object_clone).
  • S-a remediat eroarea GH-16574 (Mesaje incorecte de eroare „metodă nedefinită”).
  • S-a remediat eroarea GH-16577 (EG(strtod_state).freelist leaks cu opcache.preload).
  • S-a remediat eroarea GH-16615 (Eșecul aserției în zend_std_read_property).
  • S-a remediat eroarea GH-16342 (Adăugat ReflectionProperty::isLazy()).
  • S-a remediat eroarea GH-16725 (verificarea accesului incorectă pentru elementele de recuzită fără agățare în iteratorul de obiecte agățate).

Răsuci:

  • Constanta CURLOPT_BINARYTRANSFER a fost depreciată.
  • Versiunea necesară libcurl a fost ridicată la 7.61.0.
  • S-a adăugat cheia feature_list la valoarea de returnare curl_version().
  • S-au adăugat constantele CURL_HTTP_VERSION_3 (libcurl 7.66) și CURL_HTTP_VERSION_3ONLY (libcurl 7.88) ca opțiuni pentru CURLOPT_HTTP_VERSION (Ayesh Karunaratne)
  • S-a adăugat CURLOPT_TCP_KEEPCNT pentru a seta numărul de sonde de trimis înainte de a întrerupe conexiunea.
  • S-a adăugat opțiunea Curl CURLOPT_PREREQFUNCTION pentru a seta un apel invers personalizat după stabilirea conexiunii, dar înainte ca solicitarea să fie efectuată.
  • S-a adăugat CURLOPT_SERVER_RESPONSE_TIMEOUT, care era cunoscut anterior ca CURLOPT_FTP_RESPONSE_TIMEOUT.
  • Opțiunea CURLOPT_DNS_USE_GLOBAL_CACHE este acum ignorată în tăcere.
  • S-a adăugat CURLOPT_DEBUGFUNCTION ca opțiune Curl.
  • S-a remediat eroarea GH-16359 (crash cu curl_setopt* CURLOPT_WRITEFUNCTION fără apel invers nul).
  • S-a remediat eroarea GH-16723 (probleme CURLMOPT_PUSHFUNCTION).

Data:

  • S-a adăugat DateTime (imuabil)::createFromTimestamp.
  • S-a adăugat DateTime(imuabil)::(get|set)Microsecundă.
  • Constantele SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING și SUNFUNCS_RET_DOUBLE sunt acum depreciate.
  • S-a remediat eroarea GH-13773 (DatePeriod nu ține cont de microsecunde pentru data de încheiere).

DBA:

  • Transmiterea null sau false la dba_key_split() este depreciată.

Depanare:

  • S-a remediat eroarea GH-15923 (GDB: Python Exception : excepțiile trebuie să provină din BaseException).

DOM:

  • S-a adăugat DOMNode::compareDocumentPosition().
  • Implementați #53655 (Îmbunătățiți viteza DOMNode::C14N() pe documente XML mari).
  • Remediați atributul de clonare cu spațiul de nume care dispare.
  • Implementați RFC de analiză și serializare DOM HTML5.
  • Fix DOMElement->prefix cu șir gol creează prefix fals.
  • Gestionați OOM mai consecvent.
  • S-a implementat RFC „Îmbunătățiți apelurile înapoi în ext/dom și ext/xsl”.
  • S-a adăugat metoda statică DOMXPath::quote().
  • S-a implementat RFC pentru conformitate cu specificațiile ext/dom.
  • S-a remediat eroarea #79701 (getElementById nu funcționează corect cu definiții duplicate).
  • S-a implementat RFC „Noi funcții ext-dom în PHP 8.4”.
  • S-a remediat GH-14698 (defecțiune secundară la dereferința nodului DOM).
  • Îmbunătățiți suportul pentru elementele șablonului.
  • Remediați scurgerea trambulinei în apelabilele xpath.
  • Aruncă în loc să eșueze în tăcere atunci când se creează un nod text prea lung în (DOM)ParentNode și (DOM)ChildNode.
  • S-a remediat eroarea GH-15192 (Eroare de segmentare în extensia dom (html5_serializer)).
  • Constanta DOM_PHP_ERR depreciată.
  • S-a eliminat DOMImplementation::getFeature().
  • S-a remediat eroarea GH-15331 (testul Element::$substitutedNodeValue a eșuat).
  • S-a remediat eroarea GH-15570 (Eroare de segmentare (acces nul pointer) în ext/dom/html5_serializer.c).
  • S-a remediat eroarea GH-13988 (Stocarea DOMElement consumă de 4 ori mai multă memorie în PHP 8.1 decât în ​​PHP 8.0).
  • Remediați eroarea serializatorului XML: xmlns=”” ar trebui permisă serializarea.
  • S-a remediat eroarea GH-15910 (Eșecul aserției în ext/dom/element.c).
  • Remediați dezactivarea proprietăților DOM.
  • S-a remediat eroarea GH-16190 (Folosirea reflectării pentru a apela Dom\Node::__construct provoacă eșecul aserției).
  • Remediați majusculele marginale în decodarea prin analizarea DOM.
  • S-a remediat eroarea GH-16465 (depășirea memoriei tampon în heap în DOMNode->getElementByTagName).
  • S-a remediat eroarea GH-16594 (Eșecul aserției în DOM -> înainte).

Citiți notele complete de lansare aici.

Citeşte mai mult
Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.