天将奔烈

日々の記録や学習内容を書いていきます

PHP8の新機能

PHP8で特に気になる新機能をメモしておく

名前付き引数

function test($hoge, $fuga) { 
    print_r(func_get_args());
}

test(fuga: 1, hoge: 2);
Array
(
    [0] => 2
    [1] => 1
)

null安全オペレータ

途中にnullが入ってくるメソッドチェーンを楽にかけるようになる 今までissetとかでわざわざ判定してたのが一気に省略できるので個人的には一番うれしい機能。

null安全オペレータを使わない場合
php > $hoge = null;
php > $hoge->id;
// Warning: Attempt to read property "id" on null in php shell code on line 1
php > $hoge?->id;
// null

ユニオン型

引数に複数の型を指定したり、戻り値の型を複数定義できる機能 使いすぎは型システムの意味をなくしてしまうので意味がないけど、 地味に重宝する機能だと思う。

function fuga(int|string $hoge) {
    print_r($hoge);
}

fuga(1);
// 1
fuga("aaa");
// aaa

続く。