最近、PHP 開発チームは PHP 7.4 の新たな非推奨について投票を行い、11 月末にリリースされる予定です。現在、機能が修正された最初のベータ版がリリースされました。現在のバージョンでは、新しく選択された非推奨が提供されるだけでなく、いくつかのバグ修正も提供されます。
PHP 開発チームは、PHP 7.4 の最初のベータ版をリリースしました。これにより機能が決まります。 PHP 7.4beta1 では、新しい非推奨に加えていくつかのバグ修正が行われています。新しいバージョンに向けた変更に取り組んでいます。
PHP 7.4beta1 には新たな非推奨があります
以前の PHP では、配列要素と文字列オフセットにアクセスするために角括弧と中括弧を同じ意味で使用できました。 PHP の内部 PHP RFC からの例を説明します:
$array = [1, 2]; echo $array[1]; // prints 2 echo $array{1}; // also prints 2 $string = "foo"; echo $string[0]; // prints "f" echo $string{0}; // also prints "f"
この部分は混乱と問題を引き起こしています。たとえば、中括弧を使用して要素を配列に書き込むことはできません:
$array[] = 3; echo $array[2]; // prints 3 $array{} = 3; // Parse error: syntax error, unexpected '}'
また、中括弧構文を使用して配列を作成することもできません:
$array = [1, 2]; // works $array = {1, 2}; // Parse error: syntax error, unexpected '{'
リスト マッピング:
[$one, $two] = $array; // works {$one, $two} = $array; // Parse error: syntax error, unexpected ','
その結果、中かっこ構文は非推奨としてマークされるようになったため、リリースされたベータ版の配列または文字列オフセットを使用する場合は推奨されません。
PHP 7.4beta 1 では、先週 PHP 開発チームによって投票されたさらなる非推奨が導入されています。そこにリストされているメソッドのうち 14 は PHP 7.4 で非推奨になりました:
真正的类型 魔术引用遗产 array_key_exists()包含对象 FILTER_SANITIZE_MAGIC_QUOTES过滤器 反射export()方法 mb_strrpos(),编码为第三个参数 implode()参数顺序组合 从非静态闭包中取消绑定$ this hebrevc()函数 convert_cyr_string()函数 money_format()函数 ezmlm_hash()函数 restore_include_path()函数 allow_url_include ini指令
PHP 7.4beta1 では、言及されているメソッドはすべて推奨されなくなり、最終的にバージョン 8.0 で削除されました。
PHP 7.4beta1 のバグ修正
上記の非推奨に加えて、ベータ版ではいくつかのバグ修正も用意されています。リリースノートによると、内蔵 Web サーバーにセグメーション障害があるとのことです。この問題はこのベータ版で解決されるはずです。
PHP を CGI 経由で実行すると、別の問題が発生します。 PHP はシバン (#!) を探しています。最初の行にハッシュがある場合、PHP はその後が感嘆符であるかどうかをチェックしないため、ハッシュと感嘆符 (#!) の組み合わせになります。バグレポートによると、PHP は対応する行をスキップし、PHP コードを無視しました。
Test script: --------------- #<!--?php echo "Hello World\n"; ?--> Second line. Expected result: ---------------- X-Powered-By: PHP/5.3.3-7+squeeze3 Content-type: text/html #Hello World Second line. Actual result: -------------- X-Powered-By: PHP/5.3.3-7+squeeze3 Content-type: text/html Second line.
さらに、プロセス置換によるものである場合、PHP がプログラムの最初のバイトを食べるというバグがあります (バグ #78066)。最初のベータ版ではこのバグが修正されています。現在のバージョンの詳細については、リリース ノートを参照してください。
ベータ 1 の後にベータ 2 が続きます
PHP 7.4 は 11 月 28 日にリリースされる予定です。最初のベータ版リリース後、PHP 7.4beta2 は 2019 年 8 月 8 日にリリースされます。 PHP 7.4 のスケジュールについては、PHP wiki を参照してください。
この記事は次から翻訳されています: https://entwickler.de/online/php/php-7-4beta1-deprecations-579902190.html