ホームページ  >  記事  >  バックエンド開発  >  php7の新機能は何ですか?

php7の新機能は何ですか?

青灯夜游
青灯夜游オリジナル
2019-05-17 18:52:325333ブラウズ

php7の新機能は何ですか?

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. 新しい演算子 "96b4fef55684b9312718d5de63fb7121"

構文:

$c = $a <=> $b

If $a > $b, $c 値は 1

$a == $b の場合、$c の値は 0

$a

4. 新しい演算子 "??"

変数が存在し、値が NULL でない場合は、独自の値を返します。それ以外の場合は、その 2 番目のオペランド。

//原写法
$username = isset($_GET[&#39;user]) ? $_GET[&#39;user] : &#39;nobody&#39;;
//现在
$username = $_GET[&#39;user&#39;] ?? &#39;nobody&#39;;
5.define() 定义常量数组
define(&#39;ARR&#39;,[&#39;a&#39;,&#39;b&#39;]);
echo ARR[1];// a

6. AST: 抽象構文ツリー、抽象構文ツリー

AST は、PHP コンパイル プロセスでミドルウェアの役割を果たし、オペコードの元の出力を直接置き換えます。こうすることで、インタープリター (パーサー) とコンパイラー (コンパイラー) が分離され、一部の Hack コードを削減できると同時に、実装の理解と保守が容易になります。 : PHP コード-> パーサー構文解析-> OPCODE -> 実行

PHP7: PHP コード->gt; パーサー構文解析-> AST -> OPCODE -> 実行

7、匿名関数

$anonymous_func = function(){return &#39;function&#39;;};
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の新機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。