prima beta release del nuovo ramo del linguaggio di programmazione PHP 8. Il rilascio è previsto per il 26 novembre. Allo stesso tempo, sono stati rilasciati 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 porterà a un aumento delle prestazioni.
- argomenti nominati delle funzioni, che consentono di passare valori alla funzione legandoli ai nomi, cioè è possibile passare argomenti in ordine arbitrario e definire argomenti opzionali. Ad esempio, «array_fill(start_index: 0, num: 100, value: 50)».
- Nella chiamata ai metodi l'uso dell'operatore «?», che consente di avviare la chiamata solo se il metodo è presente, evitando così controlli superflui per il valore di ritorno «null». Ad esempio, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
- Supporto , che definiscono collezioni di due o più tipi (per esempio «public function foo(Foo|Bar $input): int|float;»).
- Supporto (annotazioni), che permettono di associare metadati (ad esempio, informazioni sui tipi) a classi senza utilizzare la sintassi Docblock.
- Supporto per espressioni , che a differenza di switch possono restituire valori, supportano la combinazione di condizioni, utilizzano il confronto rigoroso dei tipi e non richiedono di specificare «break».
$result = match($input) {
0 => «hello»,
‘1’, ‘2’, ‘3’ => «world»,
}; - per la definizione delle classi, che consente di unire la definizione del costruttore e delle proprietà.
- Nuovo tipo di valori restituiti — .
- Nuovo tipo — , che può essere utilizzato per definire l'accettazione da parte di una funzione di parametri di tipi diversi.
- Espressione per la gestione delle eccezioni.
- per la creazione di oggetti che possono essere raccolti durante la raccolta dei rifiuti (per esempio, per la memorizzazione di cache facoltativi).
- uso dell'espressione «::class» per gli oggetti (equivalente alla chiamata di get_class()).
- definizione nel blocco catch di eccezioni non legate a variabili.
- lasciare il simbolo di virgola dopo l'ultimo elemento nell'elenco dei parametri della funzione.
- Nuova interfaccia per identificare qualsiasi tipo di stringa o dato che può essere convertito in una stringa (per cui è disponibile il metodo __toString()).
- La nuova funzione , un'alternativa semplificata a strpos per determinare la presenza di una sottostringa, oltre alle funzioni str_starts_with() e str_ends_with() per verificare corrispondenze all'inizio e alla fine della stringa.
- Funzione aggiunta , che esegue l'operazione di divisione senza generare un errore in caso di divisione per zero.
- la logica di concatenazione delle stringhe. Per 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, l'espressione «[] % [42]» e «$object + 4» genereranno un errore.
- algoritmo di ordinamento stabile, in cui l'ordine di apparizione dei valori identici viene mantenuto in esecuzioni diverse.
Fonte: opennet.ru
