Slide 1

Slide 1 text

PHP 8.0 の新記法を
 試してみよう!
 2021/05/29 PHP カンファレンス沖縄 2021
 @okashoi


Slide 2

Slide 2 text

岡田 正平/おかしょい
 Twitter: @okashoi
 GitHub: @okashoi
 所属:株式会社ウィルゲート
 
 登壇:
 
 
 
 
 寄稿:


Slide 3

Slide 3 text

岡田 正平/おかしょい
 Twitter: @okashoi
 GitHub: @okashoi
 所属:株式会社ウィルゲート
 
 登壇:
 
 
 
 
 寄稿:
 (バーチャルの姿)

Slide 4

Slide 4 text

2020/11/26


Slide 5

Slide 5 text

PHP 8.0 で追加された新しい構文や関数の中から
 すぐに使えそうなものをピックアップ、勢いにまかせて紹介
 
 
 この発表のゴール
 ● 聴いた人が PHP 8.0 を使いたくなる
 ● 聴いた人がこの発表で知った構文を実際に使う
 本発表の趣旨


Slide 6

Slide 6 text

本発表は『WEB+DB PRESS vol. 120』に寄稿した
 「5 年ぶりの新版!PHP 8 登場」の内容をベースに
 5 分間にぎゅっと詰め込んだものです
 おことわり
 ※また、日本語訳は 
  私の独断によるものです 


Slide 7

Slide 7 text

str_〇〇 関数


Slide 8

Slide 8 text

str_contains() 関数


Slide 9

Slide 9 text

str_starts_with(), str_ends_with() 関数


Slide 10

Slide 10 text

PHP 7 系以前では......


Slide 11

Slide 11 text

null 安全演算子


Slide 12

Slide 12 text

null 安全演算子 ?->
 changeName('okashoi'); // PHP 7 系以前では例えばこうしていた is_null($user) ?: $user->changeName('okashoi');

Slide 13

Slide 13 text

メソッドをチェインさせたいときに便利
 bar(); if(is_null($bar)) { return null; } $buz = $bar->buz(); if(is_null($buz)) { return null; } return $buz->foobar(); } bar() ?->buz() ?->foobar(); }

Slide 14

Slide 14 text

match 式


Slide 15

Slide 15 text

match 式
 'one', 2 => 'two', 3 => 'three', default => 'more than three', }; var_dump($english); /* 実行結果 string(3) "one" */ ※ “match” は予約語に 


Slide 16

Slide 16 text

1. 文(statement)ではなく式(expression)であること
 2. break を書き忘れる心配がない
 3. 厳密比較(===)が用いられる
 4. 何にもマッチしないと UnhandledMatchError を送出
 5. 右辺には単一の式しか指定できない(※)
 
 ※ Future scope として「ブロック」を指定できるようにする旨の議論あり
 switch 文との違い


Slide 17

Slide 17 text

名前付き引数


Slide 18

Slide 18 text

名前付き引数


Slide 19

Slide 19 text

union 型


Slide 20

Slide 20 text

union 型


Slide 21

Slide 21 text

mixed 型


Slide 22

Slide 22 text

mixed 型


Slide 23

Slide 23 text

もっと知りたい方は公式ドキュメントをチェック!
 https://www.php.net/releases/8.0/
 
 
 
 WEB+DB PRESS の記事(バックナンバー)もヨロシク 
 まだまだたくさん新機能!


Slide 24

Slide 24 text

PHP 8.0 で追加された新しい構文や関数の中から
 すぐに使えそうなものをピックアップ、勢いにまかせて紹介
 
 
 この発表のゴール
 ● 聴いた人が PHP 8.0 を使いたくなる
 ● 聴いた人がこの発表で知った構文を実際に使う
 本発表の趣旨(再掲)