ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

PHP8.0

Webのサーバーサイドでよく使われるプログラム言語のPHP。2020年11月26日、5年ぶりにメジャーアップデートしてPHP8がリリースされました。

最初のバージョンがPHP8.0です。7系から8系の移行もあって変更点も多い。

そのPHP8.0で困っている人のために情報を発信します。

PHP8,『Throwは式になりました』ってどういうこと? 見た目から式だと思ってた。

php

PHP8では、例外をスローするのに使うthrowキーワードは式になったそう。

聞いてすぐは、SNSでの報告みたいな文面だなーと訳の分からない感想を持っただけでしたが、これ、いろんなことができそう。

でも、式ってことはif文の条件に使えるってことだよね? どういう動きになるの?

続きを読む

PHP8, 例外処理(throw)がNull合体演算子で使えるようになった。

php

Null合体演算子(??)は、null値に特化した三項演算子みたいなものです。

PHP8から、このNull合体演算子にthrowによる例外処理ができるようになりました。

理由はthrowの文法が『文』から『式』に変わったから。

これで、『nullだったら例外発生』の処理が1行でできるようになります。

もうif文はいらない。

続きを読む

PHP8, 例外処理(throw)がアロー関数で使えるようになった。

php

アロー関数内の処理はひとつの式しか書けないルールがあるので、throwによる例外処理はできませんでした。

これがPHP8からできるようになりました。throwの文法が『文』から『式』に変わったから。

throwのコードは見た目が式なので、何がエラーなのか戸惑った人もいたでしょう。

この仕様変更は◎。使う機会が多そう。

続きを読む

PHP8, namespaceの名前空間に予約語が使える。トークンとして扱うからできるんだって。

php

PHP8からnamespace の名前空間の名前に予約語が使えるようになりました。

(そもそもnamespace名は大文字から始めるのがコーディングのスタンダードなので、予約語とバッティングしにくいと思うが。)

トークンとして扱うようになったからできるらしんですが、そもそもトークンってなんだ?

続きを読む

PHP8, 例外キャッチで変数がなくてもいい - 文法(シンタックス)の変更

php

例外をキャッチするとき、catch() の中で例外の変数を定義するのがこれまでのルールでしたが、PHP8からその変数がなくてもよくなりました。

この変数は必ずしも使うものではなく、使わないときただの無駄だったから。

ただし、例外のクラスは定義しないといけません。

続きを読む