「php は世界で最高の言語」、前進は決して止まりません。 PHP チームは現在、PHP 8.1.0 RC 5 バージョンをリリースしており、次のバージョンは 6 番目で最後のリリース候補 (RC 6) となり、近い将来リリースされる予定です。 PHP8.1 の 8 つの重要な新しい変更点を紹介します。まず見てみましょう。
1、列挙型
enum Status { case draft; case published; case archived; public function color(): string { return match($this) { Status::draft => 'grey', Status::published => 'green', Status::archived => 'red', }; } }
2、読み取り専用プロパティ#
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(), ) { } }
$fiber = new Fiber(function (): void { $valueAfterResuming = Fiber::suspend('after suspending'); // … }); $valueAfterSuspending = $fiber->start(); $fiber->resume('after resuming');
5、#配列のアンパックは文字列キーもサポートします #$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);
新しい array_is_list 関数(新しい array_is_list 関数)$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