PHP8では、例外をスローするのに使うthrowキーワードは式になったそう。
聞いてすぐは、SNSでの報告みたいな文面だなーと訳の分からない感想を持っただけでしたが、これ、いろんなことができそう。
でも、式ってことはif文の条件に使えるってことだよね? どういう動きになるの?
続きを読むWebのサーバーサイドでよく使われるプログラム言語のPHP。2020年11月26日、5年ぶりにメジャーアップデートしてPHP8がリリースされました。
最初のバージョンがPHP8.0です。7系から8系の移行もあって変更点も多い。
そのPHP8.0について情報を発信します。
自分で情報を探しながらやっても、なかなかスムーズに答えにたどりつかない人向けです。
経験が足りないだけで、遅かったり、失敗しても自信をなくさなくていいです。いまは大きくなるために、技術を知って試す時期なので。
むしろたくさん悩んで、フリーズして、失敗してください。気がついたら最適な答えを出す力が自然と身についているでしょう。
PHP8では、例外をスローするのに使うthrowキーワードは式になったそう。
聞いてすぐは、SNSでの報告みたいな文面だなーと訳の分からない感想を持っただけでしたが、これ、いろんなことができそう。
でも、式ってことはif文の条件に使えるってことだよね? どういう動きになるの?
続きを読むNull合体演算子(??)は、null値に特化した三項演算子みたいなものです。
PHP8から、このNull合体演算子にthrowによる例外処理ができるようになりました。
理由はthrowの文法が『文』から『式』に変わったから。
これで、『nullだったら例外発生』の処理が1行でできるようになります。
もうif文はいらない。
続きを読むPHP8から、三項演算子でthrowによる例外処理ができるようになりました。
理由はthrowの文法が『文』から『式』に変わったから。
できそうでできなかったモヤッとした気持ちが解決してスッキリしたので、いい仕様変更だと思います。
使う機会も多そう。
続きを読むアロー関数内の処理はひとつの式しか書けないルールがあるので、throwによる例外処理はできませんでした。
これがPHP8からできるようになりました。throwの文法が『文』から『式』に変わったから。
throwのコードは見た目が式なので、何がエラーなのか戸惑った人もいたでしょう。
この仕様変更は◎。使う機会が多そう。
続きを読むPHP8からnamespace の名前空間の名前に予約語が使えるようになりました。
(そもそもnamespace名は大文字から始めるのがコーディングのスタンダードなので、予約語とバッティングしにくいと思うが。)
トークンとして扱うようになったからできるらしんですが、そもそもトークンってなんだ?
続きを読む例外をキャッチするとき、catch() の中で例外の変数を定義するのがこれまでのルールでしたが、PHP8からその変数がなくてもよくなりました。
この変数は必ずしも使うものではなく、使わないときただの無駄だったから。
ただし、例外のクラスは定義しないといけません。
続きを読む