新機能nullable な型
パラメータや戻り値の型宣言で nullable 指定ができるようになりました。
型の前にクエスチョンマークをつけると、nullable であることを指定できます。
nullable 指定をすると、指定した型だけでなく
上の例の出力は以下となります。 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 関数から
上の例の出力は以下となります。 null int(2) int(1)
void 関数の戻り値を使おうとした場合はその値は 対称的な配列の分解
配列の短縮構文 (
クラス定数のアクセス範囲指定クラス定数のアクセス範囲を指定できるようになりました。
iterable 擬似型新しい擬似型 (callable と同じような型) である iterable が導入されました。 パラメータおよび戻り値の型指定で使うことができます。 配列か、あるいは Traversable インターフェイスを実装したオブジェクトを受け付けるようになります。 派生型に貸しては、子クラスのパラメータの型が、 親クラスの array や Traversable を拡張して iterable に広げることができます。 戻り値の型に関しては、親クラスの iterable 型指定を子クラスで 配列あるいはオブジェクト (Traversable を実装したもの) に絞り込むことができます。
例外処理における複数の例外の catch
ひとつの catch ブロックで複数の例外を扱えるようになりました。
パイプ文字 (
list におけるキーのサポート
list (あるいはその短縮版である
負の文字列オフセットのサポート
文字列操作関数
のうちオフセット指定のできるものすべてについて、負のオフセットを指定できるようになりました。
上の例の出力は以下となります。 string (1) "e" int(3) 文字列や配列に対する負のオフセットが、文字列内での単純な変数パース構文においても使えるようになりました。
上の例の出力は以下となります。 The last character of 'bar' is 'r'. ext/openssl における AEAD のサポートopenssl_encrypt および openssl_decrypt の追加のパラメータで、 AEAD (GCM モードおよび CCM モード) をサポートするようになりました。 Closure::fromCallable による callables から Closure への変換Closure クラスに新しいstaticメソッドが追加されました。 callable を、簡単に Closure オブジェクトに変換できるようにするものです。
上の例の出力は以下となります。 string(10) "some value" 非同期シグナルハンドリング新しい関数 pcntl_async_signals が追加されました。これは、tick を使わない非同期シグナルハンドリングを有効にするものです (tick は相当大きなオーバーヘッドになります)。
上の例の出力は以下となります。 SIGHUP ext/curl における HTTP/2 サーバープッシュのサポート
CURL 拡張モジュールがサーバープッシュに対応するようになりました
(curl バージョン 7.46 以降が必要です)。
curl_multi_setopt 関数に新しい定数
ストリームコンテキストオプションtcp_nodelay ストリームコンテキストオプションが追加されました。 |