XNUMX年間の開発を経て
鍵
-
型付きプロパティ - クラス プロパティに型宣言を含めることができるようになりました。次に例を示します。クラス ユーザー {
パブリック int $id;
パブリック文字列 $name;
} -
略称 値によるスコープ バインドを持つ関数「fn(parameter_list) => expr」を定義するための構文。 たとえば、「fn($x) => $x + $y」は、「$fn2 = function ($x) use ($y) {return $x + $y;}」に似ています。 -
短縮代入演算子 「??=」はデフォルト値の定義に使用できます(「a ??= b」は「a = a ?? b」と似ています。「a」が定義されている場合はその値が保存され、定義されていない場合はその値が保存されます)値 "b" が割り当てられます); - 限定
機会 派生戻り型の型の継承階層を保持する、または派生引数型で元の型の階層を逆にする機能 (共分散 戻り値の型と引数の型の反変)。 次の構造が PHP で使用できるようになりました。クラス A {}
クラス B は A {} を拡張しますクラスプロデューサー{
パブリック関数メソッド(): A {}
}
class ChildProducer extendsProducer {
パブリック関数メソッド(): B {}
} - 配列内のアンパック演算子「…$var」、
許可する 新しい配列を定義するときに既存の配列の置換を実行します。$parts = ['リンゴ', '梨'];
$fruits = ['バナナ', 'オレンジ', …$parts, 'スイカ'];
// ['バナナ', 'オレンジ', 'リンゴ', '梨', 'スイカ']; -
機会 数値リテラルの区切り文字を使用した大きな数値の視覚的表現 (1_000_000_00)。 - サポート
弱いリンク これにより、オブジェクトへの参照を保持できますが、ガベージ コレクターによる関連オブジェクトの削除はブロックされません。 - 新しいです
機械 オブジェクトのシリアル化 (Serializable と __sleep()/__wakeup() の組み合わせ)。これは廃止予定の Serializable インターフェイスを置き換えます。// オブジェクトのすべての状態を含む配列を返します。
パブリック関数 __serialize(): 配列;// 配列からオブジェクトの状態を復元します
パブリック関数 __unserialize(array $data): void; - メソッドから例外をスローできるようにする
__toString() ; - オブジェクト コード キャッシュのプリロードのサポートが追加されました。 設定用パラメータを追加
opcache.preload を使用して、サーバーの起動時にコンパイルおよび実行される PHP スクリプトを指定できます。 このスクリプトは、他のファイルを直接組み込むか、opcache_compile_file() 関数を使用して、他のファイルのオペコードをロードできます。 - Castagnoli 多項式を使用してチェックサムを計算する crc32c 関数をハッシュ拡張機能に追加しました。
- PHP が libargon なしでビルドされている場合、Sodium ライブラリの実装で、パスワード ハッシュ メソッド argon2i および argin2id のpassword_hash() 関数のサポートが追加されました。
- 関数 mb_str_split() を追加しました。これは str_split() に似ていますが、バイトではなくマルチバイト文字列内の文字位置を操作します。
- Stripe_tags() 関数には、タグ名を含む配列を渡す機能が追加されました。 strip_tags($str, ' ') の代わりに、strip_tags($str, ['a', 'p']) を指定できるようになりました。
- proc_open() を使用すると、オペランドを文字列ではなく配列にリストして実行できます。また、スレッド リダイレクトと null ファイル記述子のサポートも提供します。
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
// シェル内の 2>&1 と同様
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);// シェルでは 2>/dev/null または 2>nul のように
proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes); - Firebird/Interbase、Recode、および WDDX 拡張機能は、基本ディストリビューションから除外されます。 これらの拡張機能は現在、PECL を通じて配布されています。
- カテゴリに移動しました
時代遅れ 括弧なしのネストされた三項演算子、中括弧 (「$var{$idx}」) を使用した配列要素と文字列へのアクセス、is_real() および実数へのキャスト、親クラスなしでのparentキーワードの使用、パラメータallow_url_include設定、使用などの機能オブジェクトの array_key_exists()。関数 get_magic_quotes_gpc()、get_magic_quotes_runtime()、および
hebrevc()、convert_cyr_string()、money_format()、ezmlm_hash()、restore_include_path()、ldap_control_paged_result_response()、ldap_control_paged_result()、ReflectionType::__toString()。関数内で不正なシンボルを処理しようとすると、廃止された機能の使用に関する警告が表示されます。
base_convert()、bindec()、octdec()、hexdec()、および mb_ereg_replace() で非文字列パターンを指定する場合。
出所: オープンネット.ru