A prova Alpha di PHP 8.2 hà iniziatu

A prima versione alfa di u novu ramu di a lingua di prugrammazione PHP 8.2 hè stata presentata. A liberazione hè prevista per u 24 di nuvembre. L'innuvazioni principali digià dispunibili per a prova o pianificate per l'implementazione in PHP 8.2:

  • Tipi separati "falsi" è "null" sò stati aghjunti, chì ponu esse utilizati, per esempiu, per rinvià un signu di cumpiimentu cù un errore o un valore viotu da una funzione. Nanzu, "false" è "null" ùn pudianu esse usatu solu in cunghjunzione cù altri tipi (per esempiu, "string|false"), ma avà ponu esse usatu separatamente: funzione sempreFalse (): false { return false ; }
  • Aggiunta a capacità di marcà una classa cum'è sola lettura. Pruprietà in tali classi pò esse stabilitu solu una volta, dopu chì ùn saranu micca dispunibili per cambià. Prima, e proprietà di classi individuali puderanu esse marcate solu di lettura, ma avà pudete attivà stu modu per tutte e proprietà di classi in una volta. Specificà a bandiera "lettura solu" à u livellu di classa ancu bluccà l'aghjunzione dinamica di pruprietà à a classe. classa sola lettura Post { public function __construct ( stringa publica $ title, Public Author $ autore, ) {} } $ post = new Post (/* … */); $post->unknown = 'sbagliatu'; // Errore: Ùn pò micca creà pruprietà dinamica Post::$unknown
  • A capacità di creà dinamicamente proprietà in una classa hè stata deprecata (cum'è "post-> unknown" in l'esempiu sopra). In PHP 9.0, l'accessu à e pruprietà chì ùn sò micca definite in origine in a classa darà un errore (ErrorException). E classi chì furnisce i metudi __get è __set per creà proprietà, o proprietà dinamiche in stdClass continuanu à travaglià cum'è hè, è solu a gestione implicita di e proprietà inesistenti ùn serà più supportata per prutege u sviluppatore da bug nascosti. Per mantene u vechju codice di travagliu, l'attributu "#[AllowDynamicProperties]" hè prupostu, chì permette l'usu di pruprietà dinamiche.
  • Fornitu a capacità di filtrà paràmetri sensittivi in ​​l'output di traccia di stack à u mumentu di un errore. Cutting out certa infurmazione pò esse dumandata quandu l'infurmazioni nantu à l'errori chì si trovanu sò automaticamente mandati à i servizii di terzu chì traccianu i prublemi è informanu i sviluppatori nantu à elli. Per esempiu, pudete escludiri paràmetri da a traccia chì includenu nomi d'utilizatore, password è variabili di l'ambiente. test di funzione( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Errore'); } test('foo', 'password', 'baz'); Errore fatale: Eccezzioni Uncaught: Errore in test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {principale} ghjittatu in test.php in linea 8
  • A capacità di rimpiazzà i valori variabili in stringhe cù l'espressioni "${var}" è ${(var)}" hè stata deprecata. U supportu per i sustituzzioni di "{$var}" è "$var" cumunimenti usati hè statu mantinutu. Per esempiu: "Hello {$world}"; OK "Hello $world"; OK "Salutu ${world}"; Deprecated: Using ${} in strings hè obsoletu
  • Callables parzialmente supportati deprecati chì ponu esse chjamati via "call_user_func($callable)" ma ùn supportanu micca chjamà in a forma "$callable()": "self::method" "parent::method" "static ::method" [ "self", "metudu"] ["parent", "metudu"] ["static", "metudu"] ["Foo", "Bar::metudu"] [nova Foo, "Bar::metudu"]
  • Implementata cunversione di casu indipendente da a locale. Funzioni cum'è strtolower () è strtoupper () avà sempre cunvertisce u casu di caratteri in a gamma ASCII, cum'è quandu si stabilisce a locale à "C".

Source: opennet.ru

Add a comment