PHP7 によってもたらされた新機能
1. 型宣言 。
文字列 (string)、整数 (int)、浮動小数点数 (float)、およびブール値 (bool) を使用して、関数のパラメーターの型と関数は値を返します。
declare(strict_types=1); function add(int $a, int $b): int { return $a+$b; } echo add(1, 2); echo add(1.5, 2.6);
php5 は上記のコードを実行できません。php7 が実行されると、最初に 3 とエラーが出力されます (add() に渡される引数 1 は整数型であり、float が指定されている必要があります);
スカラー型宣言には、必須モード (デフォルト) と厳密モードの 2 つのモードがあります。
declare(strict_types=1)、コードを実行するにはファイルの最初の行に配置する必要があります。現在のファイルは有効です。
2.set_Exception_handler() は、受信したものが Exception オブジェクトであることを保証しなくなりました
PHP 7 には、多くの致命的なエラーと回復可能な致命的なエラーが存在します。エラーは、処理のために例外に変換されます。これらの例外は、Throwable インターフェイスを実装する Error クラスを継承します (すべての例外はこの基本インターフェイスを実装します)。
PHP7 は、開発者の処理をさらに容易にし、開発者がプログラムをより詳細に制御できるようにします。デフォルトでは、エラーはプログラムを直接中断させますが、PHP7 はエラーをキャプチャして処理する機能を提供し、プログラムを許可します。この実装では、プログラマにより柔軟なオプションが引き続き提供されます。
3. 新しい演算子「96b4fef55684b9312718d5de63fb7121」
構文: $c = $a 96b4fef55684b9312718d5de63fb7121 $b
If $ a > $b、$c の値は 1
If $a == $b、$c の値は 0
If $a
4 です。新しい演算子 "??"
変数が存在し、値が NULL でない場合は、独自の値が返されます。それ以外の場合は、変数が存在します。 2 番目のオペランドが返されます。
//原写法 $username = isset($_GET['user]) ? $_GET['user] : 'nobody'; //现在 $username = $_GET['user'] ?? 'nobody';
5.define() 定数配列の定義
define('ARR',['a','b']); echo ARR[1];// a
6.AST: 抽象構文ツリー、抽象構文ツリー
AST は、PHP のコンパイル プロセスでミドルウェアの役割を果たし、インタープリターから直接オペコードを吐き出す元の方法を置き換え、インタープリター (パーサー) とコンパイラー (コンパイラー) を分離します。これにより、一部のハック コードを削減して実装を行うことができます。
PHP5: PHP コード -> パーサー構文分析 -> OPCODE -> 実行
PHP7: PHP コード -> gt; パーサー構文分析 -> AST -> OPCODE -> 実行
参考: https://wiki.php.net/rfc/abstract_syntax_tree
7.匿名関数
$anonymous_func = function(){return 'function';}; echo $anonymous_func(); // 输出function
8.Unicode 文字形式のサポート (echo "\u{9999}")
#9.Unserialize はフィルタリング機能を提供します
不正なデータのコードインジェクションを防止し、より安全な逆シリアル化されたデータを提供します。10. 名前空間参照の最適化
// PHP7以前语法的写法 use FooLibrary\Bar\Baz\ClassA; use FooLibrary\Bar\Baz\ClassB; // PHP7新语法写法 use FooLibrary\Bar\Baz\{ ClassA, ClassB};推奨チュートリアル: "
PHP7 チュートリアル"
以上がphp7 の新機能: php7 によってもたらされた新機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。