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

中級者 - PHP8の技術情報

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

そのPHP8について情報を発信します。

自分で情報を探しながらやっても、なかなかスムーズに答えにたどりつかない人向けです。

経験が足りないだけで、遅かったり、失敗しても自信をなくさなくていいです。いまは大きくなるために、技術を知って試す時期なので。

むしろたくさん悩んで、フリーズして、失敗してください。気がついたら最適な答えを出す力が自然と身についているでしょう。

PHP8, パラメータやリターン値が変わる関数。リターン値の判定は注意が必要。

php

PHP8では、拡張機能も含む既存関数のパラメータの初期値や期待する型とリターン値が変わるものがあります。

リターン値はif文などで判定をしているところは注意が必要です。とくに、処理が失敗したときのfalseを返さなくなったものは。

パラメータは気にするところは少ないかな。

続きを読む

PHP8, 外部リソースを操る拡張機能のコアをリソース型変数からクラスオブジェクトへ移行

php

PHPには、http通信(curl)、SSL通信(OpenSSL)、画像処理(GD)、ソケット通信、XML(XMLWriter)など、外部リソースとやり取りする機能があります。

その中で上記の拡張機能はPHP8でクラスが追加されました。

リソース型変数に変わるクラスインスタンスに使われます。

続きを読む

PHP8, create_function()の廃止。無名関数を使おう!

php

非推奨になっていたcreate_function()がPHP8で廃止されました。無名関数を知っている人にはどうでもいいことですが、ソースコードに残っていると致命的なエラーになって動きません。

何を今さらな情報ですが、もしまだ使っているようなら辞めましょうという話です。

続きを読む

PHP8, エラー制御演算子(@)でErrorは関係なく出力される

php

PHP8では、ログ出力を抑制するエラー制御演算子で、最高レベルのエラーは抑制されません。@をつけても出力されます。

これまで致命的なエラーのログを出力させなかったところからするといい修正。

それでも個人的にはこの機能は使うべきでないと思っています。

続きを読む

PHP8, アトリビュート(属性)とは何か?インターフェイスともちょっとちがう。

php

PHP8ではアトリビュートというものが追加されました。一言で言えばアノテーション。プログラムにメタ情報を追加するものです。

一般的には、テスト用やプログラムのドキュメント作成に使うものなんですが、PHPの公式ドキュメントを見ると、プログラミングでも使えるっぽい言い方をしています。

続きを読む

PHP8で非推奨、削除された関数や定数。非推奨のうちから使うのをやめよう!

php

PHPはメジャーアップデートすると定数や関数が削除されることがあります。将来、削除される予定のものが非推奨になることも。

非推奨は放置しても処理は動きますが、削除される前の猶予期間みたいなものなので、早めに使うのをやめましょう。

PHPのログに非推奨の警告メッセージが出るので分かりやすいです。

続きを読む