新機能スカラー型宣言
スカラー
型宣言
には二つの方式があります。デフォルトの自動変換(coercive) モードと、
厳密に判断する strict モードです。
パラメータとして、
文字列 (string)、整数 (
上の例の出力は以下となります。 int(9)
strict モードを有効にするには、ファイルの先頭に スカラー型宣言に関するドキュメントやサンプルについては、 型宣言 を参照ください。 戻り値の型宣言PHP 7 では、 戻り値の型宣言 もできるようになりました。 引数の型宣言 と同様に、戻り値の型宣言では、関数が戻す値がどの型になるかを宣言します。 戻り値の型宣言で使える 型 は、引数の型宣言で使えるものと同じです。
上の例の出力は以下となります。 Array ( [0] => 6 [1] => 15 [2] => 24 ) 詳細なドキュメントやサンプルについては、 戻り値の型宣言. を参照ください。 Null 合体演算子
null 合体演算子 (
宇宙船演算子宇宙船演算子は、二つの式を比較するために使うものです。 $a が $b より大きい場合は 1、 $a と $b が等しい場合は 0、 $a が $b より小さい場合は -1 をそれぞれ返します。 比較の際には、 PHP 型の比較表 のルールを用います。
define を用いた配列定数の定義
define で配列の定数を定義できるようになりました。
PHP 5.6 までのバージョンでは、配列の定数は
無名クラス
無名クラスをサポートするようになりました。
上の例の出力は以下となります。 object(class@anonymous)#2 (0) { } 詳細なドキュメントは 無名クラス を参照ください。 Unicode コードポイントエスケープ構文Unicode のコードポイントを十六進形式で受け取って、 それを UTF-8 で (ダブルクォートで囲まれた文字列あるいはヒアドキュメントとして) 出力します。 妥当な形式のコードポイントならあらゆるものが使えます。先頭のゼロは省略してもかまいません。
上の例の出力は以下となります。 a a (先頭のゼロを省略せずに書いても、前の行と同じ結果になります) 香 Closure::callClosure::call は、オブジェクトのスコープをクロージャに一時的に束縛して実行するための、 より高性能で簡潔な方法です。
上の例の出力は以下となります。 1 1 unserialize のフィルタリングこの仕組みは、信頼できないデータからオブジェクトを復元する際に、 よりセキュリティを高められるようにするために用意されたものです。 アンシリアライズ可能なクラスの一覧をホワイトリストとして定義することで、 コードインジェクション攻撃を防ぎます。
IntlCharICU のさらなる機能を利用するために、新しく IntlChar クラスが追加されました。このクラスには数々の static メソッドと定数が定義されており、 これらを使って Unicode の文字を操作できます。
上の例の出力は以下となります。 10ffff COMMERCIAL AT bool(true) このクラスを使うには、Intl 拡張モジュールをインストールしなければいけません。 ExpectationExpectations は、かつての assert 関数を、下位互換性を保ったまま拡張したものです。 これを用いると、コストをかけずに実運用コードの中にアサーションを組み込めます。 そして、アサーションが失敗した際に自作の例外をスローできるようになります。 これまでの API も下位互換性を保つために維持されていますが、 assert は言語構造となりました。 最初のパラメータには、単に評価対象の文字列や bool 値を指定するだけではなく、式を渡せます。
上の例の出力は以下となります。 Fatal error: Uncaught CustomError: Some error message 開発環境および運用環境での設定方法などの詳細については、 言語構造 assert のマニュアルを参照ください。
|