lt1

8 つのコード ブロックで構成される PHP 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',   
        };
    }
}

列挙型


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');

繊維、別名「緑色の糸」

$array1 = ("a" => 1);

$array2 = ("b" => 2);

$array = ("a" => 0, ...$array1, ...$array2);

var_dump($array); 

配列のアンパックは文字列キーもサポートします


function foo(int $a, int $b) {  }

$foo = foo(...);

$foo(a: 1, b: 2);

ファーストクラスの呼び出し可能オブジェクト


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

純粋な交差タイプ


$list = ("a", "b", "c");

array_is_list($list); 

$notAList = (1 => "a", 2 => "b", 3 => "c");

array_is_list($notAList); 

$alsoNotAList = ("a" => "a", "b" => "b", "c" => "c");

array_is_list($alsoNotAList); 

新しい array_is_list 関数

tpyoに気づきましたか? PR を送信して修正できます。 このブログで起こっていることについて最新の情報を入手したい場合は、 私のメーリングリストに登録してください: [email protected] に電子メールを送信してください。リストに追加させていただきます。

次の投稿
開発者向けブログの発表 -stitcher.io
前の投稿
さようなら -stitcher.io

ノート:

AZ: 動物の世界、ペット、ペット、野生の自然に関するカテゴリー記事…
SP:スポーツカテゴリー。
New vs Ne: ニュースコラム。
Te: テクノロジー カテゴリ。
Gt:エンターテインメントカテゴリー。
Bt: 占い、星占い、超常現象、超常現象。
Ta:人生コラム。