php7 の新機能は何ですか? PHP7 では、基盤となるエンジンのコードの大部分が変更され、さまざまな方法で PHP のパフォーマンスが向上したため、いくつかの新しい構文が PHP7 に追加されています。これらの構文を使用すると、パフォーマンスの向上にも役立ちます。ここでは簡単に紹介しますので、ご参考になれば幸いです。
1. スカラー パラメーターの型宣言
文字列 (string)、整数 (int)、浮動小数点数 (float)、およびブール値 (bool) を使用できます。 、関数のパラメーターの型と関数の戻り値を宣言するには、以前はクラス名、インターフェイス、配列、および Callable の 2 つのスタイルのみがサポートされていました: 強制変換モード (デフォルト) と厳密モード
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 は、整数型、浮動小数点型でなければなりません
);
スカラー型宣言には 2 つのモード: 強制モード (デフォルト) と厳密モード。
declare(strict_types=1)
、コードを実行するにはファイルの最初の行に配置する必要があります。現在のファイルは有効です。
2. set_Exception_handler() は、受信したものが Exception オブジェクトであることを保証しなくなりました
PHP 7 には、多くの致命的なエラーと回復可能な致命的なエラーが存在します。エラーは、処理のために例外に変換されます。これらの例外は、Throwable インターフェイスを実装する Error クラスを継承します (すべての例外はこの基本インターフェイスを実装します)。
PHP7 は、開発者の処理をさらに容易にし、開発者がプログラムをより詳細に制御できるようにします。デフォルトでは、エラーはプログラムを直接中断させますが、PHP7 はエラーをキャプチャして処理する機能を提供し、プログラムを許可します。この実装では、プログラマにより柔軟なオプションが引き続き提供されます。
3. 新しい演算子 "<=>"
構文:
$c = $a <=> $b
If $a > $b, $c 値は 1
$a == $b の場合、$c の値は 0
$a < $b の場合、$c の値は -1
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 コンパイル プロセスでミドルウェアの役割を果たし、オペコードの元の出力を直接置き換えます。こうすることで、インタープリター (パーサー) とコンパイラー (コンパイラー) が分離され、一部の Hack コードを削減できると同時に、実装の理解と保守が容易になります。 : PHP コード-> パーサー構文解析-> OPCODE -> 実行
PHP7: PHP コード->gt; パーサー構文解析-> AST -> OPCODE -> 実行
7、匿名関数$anonymous_func = function(){return 'function';};
echo $anonymous_func(); // 输出function
9 Unserialize はフィルタリング機能を提供します
不正なデータのコード インジェクションを防ぎ、より安全な逆シリアル化されたデータを提供します。
10. 名前空間参照の最適化以上がphp7の新機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。// PHP7以前语法的写法
use FooLibrary\Bar\Baz\ClassA;
use FooLibrary\Bar\Baz\ClassB;
// PHP7新语法写法
use FooLibrary\Bar\Baz\{ ClassA, ClassB};