狠狠撸
Submit Search
PHP 8.0 の新記法を試してみよう!
?
1 like
?
864 views
Shohei Okada
Follow
PHP カンファレンス沖縄 2021
Read less
Read more
1 of 24
Download now
Download to read offline
More Related Content
PHP 8.0 の新記法を試してみよう!
1.
PHP 8.0 の新記法を? 試してみよう!? 2021/05/29
PHP カンファレンス沖縄 2021? @okashoi?
2.
岡田 正平/おかしょい? Twitter: @okashoi? GitHub:
@okashoi? 所属:株式会社ウィルゲート? ? 登壇:? ? ? ? ? 寄稿:?
3.
岡田 正平/おかしょい? Twitter: @okashoi? GitHub:
@okashoi? 所属:株式会社ウィルゲート? ? 登壇:? ? ? ? ? 寄稿:? (バーチャルの姿)
4.
2020/11/26?
5.
PHP 8.0 で追加された新しい構文や関数の中から? すぐに使えそうなものをピックアップ、勢いにまかせて紹介? ? ? この発表のゴール? ●
聴いた人が PHP 8.0 を使いたくなる? ● 聴いた人がこの発表で知った構文を実際に使う? 本発表の趣旨?
6.
本発表は『WEB+DB PRESS vol.
120』に寄稿した? 「5 年ぶりの新版!PHP 8 登場」の内容をベースに? 5 分間にぎゅっと詰め込んだものです? おことわり? ※また、日本語訳は ? 私の独断によるものです ?
7.
str_〇〇 関数?
8.
str_contains() 関数? <?php var_dump(str_contains('Hello, PHP8!',
'PHP')); var_dump(str_contains('Hello, PHP8!', 'PHP7')); /* 実行結果 bool(true) bool(false) */
9.
str_starts_with(), str_ends_with() 関数? <?php var_dump(str_starts_with('Hello,
PHP8!', 'Hello')); var_dump(str_starts_with('Hello, PHP8!', 'PHP8!')); var_dump(str_ends_with('Hello, PHP8!', 'Hello')); var_dump(str_ends_with('Hello, PHP8!', 'PHP8!')); /* 実行結果 bool(true) bool(false) bool(false) bool(true) */
10.
PHP 7 系以前では......? <?php //
str_contains()相当 function my_str_contains(string $a, string $b): bool { return strpos($a, $b) !== false; } // str_starts_with()相当 function my_str_starts_with(string $a, string $b): bool { return strpos($a, $b) === 0; } // str_ends_with()相当 function my_str_ends_with(string $a, string $b): bool { return strrpos($a, $b) === strlen($a) - strlen($b); }
11.
null 安全演算子?
12.
null 安全演算子 ?->? <?php //
$user が null の場合もエラーにならない $user?->changeName('okashoi'); // PHP 7 系以前では例えばこうしていた is_null($user) ?: $user->changeName('okashoi');
13.
メソッドをチェインさせたいときに便利? <?php function example1(?Foo $foo):
?FooBar { if(is_null($foo)) { return null; } $bar = $foo->bar(); if(is_null($bar)) { return null; } $buz = $bar->buz(); if(is_null($buz)) { return null; } return $buz->foobar(); } <?php function example2(?Foo $foo): ?FooBar { return $foo?->bar() ?->buz() ?->foobar(); }
14.
match 式?
15.
match 式? <?php $english =
match (1) { 1 => 'one', 2 => 'two', 3 => 'three', default => 'more than three', }; var_dump($english); /* 実行結果 string(3) "one" */ ※ “match” は予約語に ?
16.
1. 文(statement)ではなく式(expression)であること? 2. break
を書き忘れる心配がない? 3. 厳密比較(===)が用いられる? 4. 何にもマッチしないと UnhandledMatchError を送出? 5. 右辺には単一の式しか指定できない(※)? ? ※ Future scope として「ブロック」を指定できるようにする旨の議論あり? switch 文との違い?
17.
名前付き引数?
18.
名前付き引数? <?php function setFullName(string $givenName,
string $familyName): void { // 省略 } // familyNameを先に指定できる setFullName(familyName: '岡田', givenName: '正平');
19.
union 型?
20.
union 型? <?php // 引数にint型の値もfloat型の値も渡せる //
戻り値はint型またはfloat型のどちらか function square(int|float $x): int|float { return $x * $x; }
21.
mixed 型?
22.
mixed 型? <?php function foo(mixed
$value): mixed { return $value; } array|bool|callable|int|float|null|object|resource|string と同じ
23.
もっと知りたい方は公式ドキュメントをチェック!? https://www.php.net/releases/8.0/? ? ? ? WEB+DB PRESS の記事(バックナンバー)もヨロシク
? まだまだたくさん新機能!?
24.
PHP 8.0 で追加された新しい構文や関数の中から? すぐに使えそうなものをピックアップ、勢いにまかせて紹介? ? ? この発表のゴール? ●
聴いた人が PHP 8.0 を使いたくなる? ● 聴いた人がこの発表で知った構文を実際に使う? 本発表の趣旨(再掲)?
Download