| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
新機能nullable な型
パラメータや返り値の型宣言で nullable 指定ができるようになりました。
型の前にクエスチョンマークをつけると、nullable であることを指定できます。
nullable 指定をすると、指定した型だけでなく
<?php 上の例の出力は以下となります。 string(10) "elePHPant" NULL string(10) "elePHPant" NULL Uncaught Error: Too few arguments to function test(), 0 passed in... void 関数
返り値の型として void が導入されました。返り値の型を void
と宣言した関数は、関数内での return 文を省略するか、あるいは空の return を使う必要があります。
void 関数から
<?php 上の例の出力は以下となります。 null int(2) int(1)
void 関数の返り値を使おうとした場合はその値は Symmetric array destructuring配列の短縮構文 ([]) を使って、 代入用に配列の値を取り出せるようになりました (foreach でも使えます)。 これは、list() の代替として使えます (list() もまだ使えます)。
<?php クラス定数のアクセス範囲指定クラス定数のアクセス範囲を指定できるようになりました。
<?php iterable 擬似型新しい擬似型 (callable と同じような型) である iterable が導入されました。 パラメータおよび返り値の型指定で使うことができます。 配列か、あるいは Traversable インターフェイスを実装したオブジェクトを受け付けるようになります。 派生型に貸しては、子クラスのパラメータの型が、 親クラスの array や Traversable を拡張して iterable に広げることができます。 返り値の型に関しては、親クラスの iterable 型指定を子クラスで 配列あるいはオブジェクト (Traversable を実装したもの) に絞り込むことができます。
<?php 例外処理における複数の例外の catchひとつの catch ブロックで複数の例外を扱えるようになりました。 パイプ文字 (|) を使って指定します。 これは、異なるクラス階層に由来する異なる例外を同じように処理したい場合に有用です。
<?php list() におけるキーのサポートlist() (あるいはその短縮版である [] 構文) の内部でキーを指定できるようになりました。 つまり、キーが整数でなかったりシーケンシャルでなかったりした場合でも、 配列の値を取り出せるようになったということです。
<?php 負の文字列オフセットのサポート文字列操作関数 のうちオフセット指定のできるものすべてについて、負のオフセットを指定できるようになりました。 [] や {} による 文字列への文字単位のアクセス についても同様です。 負のオフセットは、文字列の末尾からのオフセットと解釈されます。
<?php 上の例の出力は以下となります。 string (1) "e" int(3) 文字列や配列に対する負のオフセットが、文字列内での単純な変数パース構文においても使えるようになりました。
<?php 上の例の出力は以下となります。 The last character of 'bar' is 'r'. ext/openssl における AEAD のサポートopenssl_encrypt() および openssl_decrypt() の追加のパラメータで、 AEAD (GCM モードおよび CCM モード) をサポートするようになりました。 Closure::fromCallable() による callables から Closure への変換Closure クラスに新しい静的メソッドが追加されました。 callable を、簡単に Closure オブジェクトに変換できるようにするものです。
<?php 上の例の出力は以下となります。 string(10) "some value" 非同期シグナルハンドリング新しい関数 pcntl_async_signals() が追加されました。これは、tick を使わない非同期シグナルハンドリングを有効にするものです (tick は相当大きなオーバーヘッドになります)。
<?php 上の例の出力は以下となります。 SIGHUP ext/curl における HTTP/2 サーバープッシュのサポート
CURL 拡張モジュールがサーバープッシュに対応するようになりました
(curl バージョン 7.46 以降が必要です)。
curl_multi_setopt() 関数に新しい定数
|
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「新機能」をGoogle検索
|