この記事の内容は、PHP リリース時の新しいファイルに基づいています。リンクアドレス: PHP 7 new
php// PHP 7之前的写法:比较两个数的大小function order_func($a, $b) { return ($a < $b) ? -1 : (($a > $b) ? 1 : 0);}// PHP新增的操作符 <=>,perfectfunction order_func($a, $b) { return $a <=> $b;}
phpecho "\u{1F602}"; // outputs (这个是方括号里面的问号,因为是unicode字符,sg博客不支持,发布出来)
error_clear_last() 関数を追加
新しい関数、特定の関数は詳しく調査されていません
RFC スカラー型宣言 v0.5 を実装しました (Anthony)
変数の型宣言 (int、float、string、bool)
関連する構文:declare(strict_types=1);
strict_types が0 に設定すると、PHP は関数のパラメーターと戻り値に対して厳密な型判定を実行します。
必要な主なものは
1 を最初の行に配置する必要があります。 PHP ファイルのこの行には他のコンテンツを含めることはできません。
2 destroy(strict_types=1); この宣言ファイルを含むファイルは、
に影響を与えません。 3 関数かどうかを決定します。メソッドが強い型か弱いかは、関数やメソッドを宣言したファイルを見て、最初に
があればdeclare(strict_types=1);という文があれば強いです。 type
構文のデモ
php//声明函数返回值类型的写法和参数类型function foobar(float $abc): int { return ceil($abc + 1);}
这里声明了方法参数的类型,当调用的时候,如果不是相应的类型,会先尝试进行类型转换,然后把转换后的值传入
php// 新语法写法use FooLibrary\Bar\Baz\{ ClassA, ClassB, ClassC, ClassD as Fizbo };// 以前语法的写法use FooLibrary\Bar\Baz\ClassA;use FooLibrary\Bar\Baz\ClassB;use FooLibrary\Bar\Baz\ClassC;use FooLibrary\Bar\Baz\ClassD as Fizbo;
RFC Continue Output Buffering を実装しました。(Mike)
//TODO
内部クラスの RFC コンストラクター動作を実装しました (Dan、Dmitry)
//TODO
RFC 修正の「foreach」動作を実装しました (Dmitry)
foreach 構文の境界追加処理、
https://wiki.php.net/rfc/php7_foreach
RFC ジェネレーター委任 (Bob)
を実装しました。多くの高度な機能を実現できるジェネレーターの機能を強化しました
php<?php//牛逼的用法,轻量级的线程 function g() { yield 1; yield from [2, 3, 4]; yield 5;}$g = g();foreach ($g as $yielded) { var_dump($yielded);}/*int(1)int(2)int(3)int(4)int(5)*/
RFC 匿名クラスのサポートを実装しました (Joe、Nikita、Dmitry)
。匿名クラス。これについては詳しくは紹介しません。
RFC Context Sensitive Lexer を実装しました (Marcio Almada)
この機能は主に PHP のオブジェクト指向機能をより使いやすくするためのものです
クラスの属性またはメソッドでは、foreach、list、for などのいくつかのキーワードを使用できます。
申し訳ありませんが、今日は熱があるため、これ以上書くことができません。続きは時間があるときに書きます