PHP8では、クラスのメソッドの戻り値でしか使えないstatic型というものが追加されました。
一応、ドキュメントの説明でなんとなくは分かりましたが、いくつか気になるところが。
何をするもので、何ができないのかを見ていきます。
そしてややこしい。'static' というワード使いすぎ。PHPは。
続きを読むWebのサーバーサイドでよく使われるプログラム言語のPHP。2020年11月26日、5年ぶりにメジャーアップデートしてPHP8がリリースされました。
最初のバージョンがPHP8.0です。7系から8系の移行もあって変更点も多い。
そのPHP8.0について情報を発信します。
自分で情報を探しながらやっても、なかなかスムーズに答えにたどりつかない人向けです。
経験が足りないだけで、遅かったり、失敗しても自信をなくさなくていいです。いまは大きくなるために、技術を知って試す時期なので。
むしろたくさん悩んで、フリーズして、失敗してください。気がついたら最適な答えを出す力が自然と身についているでしょう。
PHP8では、クラスのメソッドの戻り値でしか使えないstatic型というものが追加されました。
一応、ドキュメントの説明でなんとなくは分かりましたが、いくつか気になるところが。
何をするもので、何ができないのかを見ていきます。
そしてややこしい。'static' というワード使いすぎ。PHPは。
続きを読むPHPは変数の型に自由度があるプログラム言語のひとつですが、もともと型宣言ができるようになっていて、PHP8はデータ型の厳密化へ舵を切りました。
PHP8では型に合わないパラメータや戻り値はエラーになるほど。
そこで従来の型にこだわらないために用意されたのがmixed型です。
続きを読むPHP8から、or(または)の意味を持つパイプライン(|)を使って、型宣言を複数指定できるようになりました。
union型は複数宣言の型の名称で、'union' という型の記述はできません。
同じように特定の型を表さないmixedとはそこはちがう。
続きを読むPHP8から、コンストラクタのパラメータ変数をクラスのプロパティにするシンタックス(文法)が追加されました。
これで、コンストラクタ内で '$this->〇〇 = 〇〇' というパラメータをプロパティに代入する処理が不要になります。
プログラミング記述省略のシンタックス変更のひとつ。
続きを読むPHP8では、拡張機能も含む既存関数のパラメータの初期値や期待する型とリターン値が変わるものがあります。
リターン値はif文などで判定をしているところは注意が必要です。とくに、処理が失敗したときのfalseを返さなくなったものは。
パラメータは気にするところは少ないかな。
続きを読むPHPには、http通信(curl)、SSL通信(OpenSSL)、画像処理(GD)、ソケット通信、XML(XMLWriter)など、外部リソースとやり取りする機能があります。
その中で上記の拡張機能はPHP8でクラスが追加されました。
リソース型変数に変わるクラスインスタンスに使われます。
続きを読む