Maison >titres >Sans jamais s'arrêter d'avancer, PHP8.1 apporte 8 nouveaux changements importants !

Sans jamais s'arrêter d'avancer, PHP8.1 apporte 8 nouveaux changements importants !

藏色散人
藏色散人original
2021-11-10 16:21:014579parcourir

"php est le meilleur langage du monde", il ne cesse d'avancer ! L'équipe PHP a actuellement publié la version PHP 8.1.0 RC 5, et la prochaine version sera la sixième et dernière version candidate (RC 6), qui sera publiée dans un avenir proche. Laissez-moi vous présenter les 8 nouveaux changements importants de PHP8.1, jetons-y un coup d'œil d'abord ! Nouveau dans les initialiseurs)

enum Status
{
    case draft;
    case published;
    case archived;
    
    public function color(): string
    {
        return match($this) 
        {
            Status::draft => 'grey',   
            Status::published => 'green',   
            Status::archived => 'red',   
        };
    }
}
4、Fibers, alias "fils verts"

class PostData
{
    public function __construct(
        public readonly string $title,
        public readonly string $author,
        public readonly string $body,
        public readonly DateTimeImmutable $createdAt,
        public readonly PostState $state,
    ) {}
}
5、Le déballage du tableau prend également en charge les clés de chaîne (le déballage du tableau prend également en charge les clés de chaîne)

class PostStateMachine
{
    public function __construct(
        private State $state = new Draft(),
    ) {
    }
}
6,

Appelables de première classe

$fiber = new Fiber(function (): void {
    $valueAfterResuming = Fiber::suspend('after suspending');
    
    // … 
});
 
$valueAfterSuspending = $fiber->start();
 
$fiber->resume('after resuming');
7,

Types d'intersection purs (Types d'intersection purs)

$array1 = ["a" => 1];
$array2 = ["b" => 2];
$array = ["a" => 0, ...$array1, ...$array2];
var_dump($array); // ["a" => 1, "b" => 2]
8, nouvelle fonction array_is_list (La nouvelle fonction array_is_list )

function foo(int $a, int $b) { /* … */ }
$foo = foo(...);
$foo(a: 1, b: 2);
Cet article est traduit, adresse originale : https://stitcher.io/blog/php-81-in-8-code-blocks

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn