PHP è unico dei linguaggi nel corso di progettazione principalmente diffusi al universo. Legittimo la sua larghissima disseminazione, ha portato tanti programmatori ad utilizzarlo, specialmente di egli progresso delle logiche nel corso di business server delle applicazioni web.
Al nel corso di delle numerose critiche i quali continua a sentire, PHP è con i primi 10 linguaggi più utilizzati al mondo. Ed è quandanche di questo riguardo i quali le modernità introdotte durante PHP 8.0 (rilasciato il 26 novembre ) ricoprono una significativa durante tutte le comune nel corso di sviluppatori web.
Quanto a questo servizio cercheremo dunque nel corso di condensare le principali modernità nel corso di questa nel corso di PHP.
Gola nel corso di argomenti di pseudonimo
Una attirbuto introdotta durante PHP 8 è quella dei named arguments, i quali permetterà nel corso di operare una ruolo passando un pretesto di pseudonimo, e dimessamente durante piedestallo alla punto. Ad norma, immaginiamo nel corso di la ruolo posteriore:
function quesito(string $a, string $b, ?string $c = null, ?string $d = null)
{
/* … */
}
Potremo a questo termine operare la ruolo dunque:
quesito(b: 'arg1', a: 'arg2', d: 'arg3',
);
Simile probabilità rende principalmente leggibile il regolamento, senza competenza del resto esonerare frenare le probabilità fornite dalle versioni precedenti del frasario. Ecco altri linguaggi nel corso di progettazione permettono nel corso di ferire a esse argomenti di pseudonimo ulteriormente i quali di punto (ad esempio Python), e questa aggiunzione farà desiderio a numerosi sviluppatori.
Attributi
Nonostante PHP 8 sono stati introdotti quandanche a esse attributi, unito noti durante altri linguaggi quanto annotazioni. Si tratto principalmente nel corso di un congegno di conglobare metadati alle classi, motivo fino ad oggi ipotizzabile esclusivamente inserendoli all’casalingo dei blocchi nel corso di commenti multi-riga. Quanto a altre chiacchiere, durante PHP 7 e versioni precedenti, eravamo costretti a progredire durante questo procedura:
class PostsController
{
/**
* @Route("/api/posts/{id}", methods={"GET"})
*/
public function get($id) { /* ... */ }
}
Nonostante la nel corso di PHP, il regolamento summenzionato diventa corrispondente al posteriore:
class PostsController
{
#[Route("/api/posts/{id}", methods: ["GET"])]
public function get($id) { /* ... */ }
}
Conquista delle precisione definite nel
Un’altra semplificazione del regolamento riguarda la significato e passaggio delle precisione nel corso di una ambiente senza intermediari all’casalingo del . Questa mutamento (i quali riprende anch’ la sintassi di Python e nel corso di altri linguaggi) permette nel corso di restringere efficacemente le righe nel corso di regolamento richieste di la significato della assetto nel corso di una ambiente, quanto si evince dal regolamento posteriore:
class Point {
public function __construct(
public float $x = 0.0,
public float $y = 0.0,
public float $z = 0.0,
) {}
}
Union types
A loro union types sono dubbio una delle modernità principalmente innovative della nel corso di PHP. la tipizzazione dinamica nel corso di PHP, vi sono numerosi casi durante cui può succedere entrata determinare principalmente tipi nel corso di determinato possibili di un principio, invece di poterlo modi soletto nelle annotazioni. La sintassi introdotta permette nel corso di modi esatto questo, quanto mostrato nel regolamento i quali segue:
public function foo(Classe1|Classe2 $): int|float;
Si noti i quali il quintessenza void
può no succedere scenata nel corso di unico union type. Per di più, è ipotizzabile determinare delle unioni nel corso di tipi i quali siano nullable, utilizzando la sintassi |null
, ovvero corso la notazione per mezzo di il termine richiesta (?
):
public function foo(ClasseX|null $foo): void;
public function (?ClasseY $): void;
Incontro
PHP 8 introduce quandanche un intatto profitto, notevole corrispondente allo switch
, identificato dalla vocabolo carattere gara
. Secondo alcuni versi, egli si può apprezzare una guisa nel corso di “fratello più vecchio” dello switch
, e le similitudini dovrebbero succedere bastantemente intuibili dallo snippet posteriore:
$result = gara($) {
0 => "hello",
'1', '2', '3' => "world",
};
Per le implementate a motivo di gara
, citiamo la probabilità nel corso di gioielli, il costituito i quali egli richieda la prontezza delle interruzione
, e la probabilità nel corso di unire principalmente condizioni.
Chirurgo nullsafe
È stata introdotta una sintassi i quali evita la riscontro i quali una instabile il calibro nel corso di restituzione nel corso di un manuale siano null
. L’ nullsafe consente invero nel corso di implementare in tutto ciò durante un’unica striscia: ogni anno successione i quali la perizia nel corso di un costituente fallisce, l’attuazione dell’intera serie nel corso di chiamate viene interrotta, ed il calibro nel corso di restituzione vale null
.
Improvvisamente un norma:
$country = $session?->user?->getAddress()?->country;
Altre modernità nel corso di PHP 8
tutte le modernità a fatica descritte, ve di lì sono molte altre tanto interessanti. Una, ad norma, è la redazione Just-Quanto a-Time ( JIT), i quali stando a esplicito dal team nel corso di progresso nel corso di PHP, dovrebbe evolversi le risultato, riducendo nel corso di un terzo il era nel corso di redazione, specialmente durante alcuni casi d’impiego.
È stata per di più introdotta la probabilità nel corso di valersi la vocabolo carattere static
quanto quintessenza nel corso di restituzione, il cui impiego è delimitato e descritto durante questa RFC:
class Saggio
{
public function quesito(): static
{
return new static();
}
}
A queste si aggiungo moltissime altre modernità; il procedura eccellente di ottenere un lavoro una sguardo generale esaustiva è dare in un’cipiglio alle note di rilascio di PHP 8, i quali includono una lunga carrellata nel corso di esempi e link.
: PHP.net