新機能PHP コア型付きプロパティクラスのプロパティは、新たに型宣言をサポートするようになりました
$user->id には int の 値だけを、そして $user->name には string の値だけを代入できるように強制します。
アロー関数アロー関数は、暗黙的な値スコープを持った関数を定義する簡便な文法を提供します。
戻り値の型を狭めたり、引数の型を広げたりする次のようなコードが動作するようになります:
Null 合体代入演算子
配列内での値のアンパック
数値リテラルのセパレータ数値リテラルは、桁と桁の間にアンダースコアを挿入できるようになりました。
弱い参照弱い参照 により、オブジェクトが破棄されるのを妨げないオブジェクトへの参照を保持することが可能です。 __toString() から例外をスロー可能に__toString() から例外をスローできるようになりました。以前は、この場合には致命的なエラーが発生していました。この関数内に既に存在する、回復可能な致命的なエラーは Error 例外クラスに変換されます。 CURLCURLFile は、CURL拡張モジュールが libcurl 7.56.0 より新しいものでビルドされた場合は、通常のファイル名に加えて、ストリームラッパーをサポートするようになります。 Filter
FFIFFI は、ネイティブ関数を呼び出したり、ネイティブな値にアクセスしたり、Cライブラリで定義されたデータ構造を生成/アクセスする簡単な方法を提供する新しい拡張モジュールです。 GD
画像に scatter フィルタを適用するための
Hash
Castagnoli 多項式を使った マルチバイト文字列str_split と同等の機能を提供するものの、バイトではなく、コードポイント単位で動作する mb_str_split 関数が追加されました。 OPcacheコードを事前ロードする機能 がサポートされました。 正規表現 (Perl互換)
preg_replace_callback および preg_replace_callback_array
関数は、追加のフラグを受け入れるようになりました。
PDOユーザー名とパスワードが、PDO DSN の一部として指定できるようになりました。対象となるのは、mysql, mssql, sybase, dblib, firebird, oci ドライバです。以前は、この機能は pgsql ドライバでのみサポートされていました。ユーザー名/パスワードがコンストラクタとDSNの両方で指定された場合は、コンストラクタの指定が優先します。
SQLクエリのクエスチョンマークが、パラメータのプレースホルダーとして解釈されるのを防ぐためにエスケープできるようになりました。 PDO_OCIPDOStatement::getColumnMeta が利用できるようになりました。 PDO_SQLite
SQLite3最新の拡張結果コードを取得するために、 SQLite3::lastExtendedErrorCode が追加されました。
標準ライブラリstrip_tags() をタグ名の配列とともに使う
strip_tags
関数は、許可するタグの配列も受け入れるようになりました。つまり、 カスタムオブジェクトのシリアル化
新しいカスタムオブジェクトのシリアル化の機構が追加されました。これは、新しいふたつのマジックメソッド
引数を渡さずに array_merge 系の関数を使用する
array_merge および
array_merge_recursive
関数は、引数なしでも呼び出せるようになりました。この場合、空の配列が返されます。これは、 proc_open 関数proc_open 関数は、コマンドの文字列ではなく、配列を受け入れるようになりました。この場合、プロセスは(shellを通さず) 直接オープンされ、PHP が必要な引数のエスケープをすべて行います。
proc_open が、
libargon なしでの argon2i(d)PHP が libargon を使わずにビルドされた場合、password_hash 関数は sodium 拡張モジュールの argon2i と argon2id を使った実装を使うようになります。 |