Rumah > tajuk utama > teks badan

Tidak pernah berhenti untuk bergerak ke hadapan, PHP8.1 membawa 8 perubahan baharu yang penting!

藏色散人
Lepaskan: 2021-11-11 19:17:36
asal
4509 orang telah melayarinya

"php ialah bahasa terbaik di dunia", ia tidak pernah berhenti bergerak ke hadapan! Pasukan PHP pada masa ini telah mengeluarkan versi PHP 8.1.0 RC 5, dan versi seterusnya akan menjadi calon keluaran keenam dan terakhir (RC 6), yang akan dikeluarkan dalam masa terdekat. Biar saya perkenalkan kepada anda 8 perubahan baharu yang penting dalam PHP8.1, mari kita lihat dahulu!

1, Enums

enum Status
{
    case draft;
    case published;
    case archived;
    
    public function color(): string
    {
        return match($this) 
        {
            Status::draft => 'grey',   
            Status::published => 'green',   
            Status::archived => 'red',   
        };
    }
}
Salin selepas log masuk

2, Sifat baca sahaja

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,
    ) {}
}
Salin selepas log masuk

3 Baharu dalam pemula

class PostStateMachine
{
    public function __construct(
        private State $state = new Draft(),
    ) {
    }
}
Salin selepas log masuk

4 >Fibers, a.k.a. "benang hijau")

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

5, Pembukaan tatasusunan juga menyokong kekunci rentetan (Pembukaan tatasusunan juga menyokong kekunci rentetan)

$array1 = ["a" => 1];
$array2 = ["b" => 2];
$array = ["a" => 0, ...$array1, ...$array2];
var_dump($array); // ["a" => 1, "b" => 2]
Salin selepas log masuk

6, Pemanggil kelas pertama

function foo(int $a, int $b) { /* … */ }
$foo = foo(...);
$foo(a: 1, b: 2);
Salin selepas log masuk

7, Jenis persimpangan tulen

function generateSlug(HasTitle&HasId $post) {
    return strtolower($post->getTitle()) . $post->getId();
}
Salin selepas log masuk

8、Fungsi array_is_list baharu)

$list = ["a", "b", "c"];
array_is_list($list); // true
$notAList = [1 => "a", 2 => "b", 3 => "c"];
array_is_list($notAList); // false
$alsoNotAList = ["a" => "a", "b" => "b", "c" => "c"];
array_is_list($alsoNotAList); // false
Salin selepas log masuk
Artikel ini ialah terjemahan, alamat asal: https://stitcher.io/blog/php-81-in-8 -kod-blok

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan