"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', }; } }
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, ) {} }
class PostStateMachine { public function __construct( private State $state = new Draft(), ) { } }
4 >Fibers, a.k.a. "benang hijau")
$fiber = new Fiber(function (): void { $valueAfterResuming = Fiber::suspend('after suspending'); // … }); $valueAfterSuspending = $fiber->start(); $fiber->resume('after resuming');
$array1 = ["a" => 1]; $array2 = ["b" => 2]; $array = ["a" => 0, ...$array1, ...$array2]; var_dump($array); // ["a" => 1, "b" => 2]
function foo(int $a, int $b) { /* … */ } $foo = foo(...); $foo(a: 1, b: 2);
function generateSlug(HasTitle&HasId $post) { return strtolower($post->getTitle()) . $post->getId(); }
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
Artikel ini ialah terjemahan, alamat asal: https://stitcher.io/blog/php-81-in-8 -kod-blok