la prima beta release del nuovo ramo del linguaggio di programmazione PHP 8. Il rilascio è previsto per il 26 novembre. Sono stati inoltre creati aggiornamenti correttivi per PHP 7.4.9, 7.3.21 e
7.2.33, in cui sono stati risolti errori e vulnerabilità accumulati.
Principali PHP 8:
- , il cui utilizzo consentirà di aumentare le prestazioni.
- argomenti nominati nelle funzioni, che permettono di passare i valori alle funzioni legandoli ai nomi, cioè si possono passare argomenti in ordine arbitrario e definire argomenti opzionali. Ad esempio, «array_fill(start_index: 0, num: 100, value: 50)».
- Durante la chiamata ai metodi l'uso dell'operatore «?», che permette di iniziare la chiamata solo se il metodo è presente, evitando così controlli superflui sul valore di ritorno «null». Ad esempio, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
- Supporto , che definiscono collezioni di due o più tipi (ad esempio «public function foo(Foo|Bar $input): int|float;»).
- Supporto (annotazioni), che permettono di legare metadati (ad esempio, informazioni sui tipi) alle classi senza utilizzare la sintassi Docblock.
- Supporto delle espressioni , che a differenza di switch possono restituire valori, supportano la combinazione di condizioni, utilizzano un confronto di tipo rigoroso e non richiedono l'indicazione di «break».
$result = match($input) {
0 => «hello»,
‘1’, ‘2’, ‘3’ => «world»,
}; - per la definizione delle classi, che consente di combinare la definizione del costruttore e le proprietà.
- Nuovo tipo di valori restituiti — .
- Nuovo tipo — , che può essere utilizzato per definire l'accettazione da parte di una funzione di parametri di diversi tipi.
- Espressione per la gestione delle eccezioni.
- per creare oggetti che possono essere sacrificati durante la raccolta dei rifiuti (ad esempio, per memorizzare cache opzionali).
- uso dell'espressione «::class» per gli oggetti (equivalente alla chiamata di get_class()).
- definizioni nel blocco catch di eccezioni non legate a variabili.
- lasciare il simbolo della virgola dopo l'ultimo elemento nella lista dei parametri della funzione.
- Nuova interfaccia per identificare qualsiasi tipo di stringa o dati che possono essere convertiti in una stringa (per i quali è disponibile il metodo __toString()).
- Nuova funzione , un analogo semplificato di strpos per determinare l'inserimento di una sottostringa, così come le funzioni str_starts_with() e str_ends_with() per verificare le corrispondenze all'inizio e alla fine della stringa.
- È stata aggiunta una funzione , che esegue l'operazione di divisione senza generare un errore in caso di divisione per zero.
- la logica di concatenazione delle stringhe. Ad esempio, l'espressione ‘echo «sum: » . $a + $b’ veniva precedentemente interpretata come ‘echo («sum: » . $a) + $b’, mentre in PHP 8 sarà elaborata come ‘echo «sum: » . ($a + $b)’.
- la verifica delle operazioni aritmetiche e bitwise, ad esempio, le espressioni «[] % [42]» e «$object + 4» genereranno un errore.
- un algoritmo di ordinamento stabile, in cui l'ordine degli stessi valori è preservato in esecuzioni diverse.
Fonte: opennet.ru
