可変引数の改善
パラメーター数が可変である関数・メソッドであることをシグニチャに明記できるようになるvariadicが追加される。
C言語では可変引数を "..." と標記するが、これに似ている。
C言語では可変引数を "..." と標記するが、これに似ている。
0003: function hoge1($reqParam, $optParam = null, ...$params) {
0004: var_dump($reqParam, $optParam, $params);
0005: }
0006:
0007: hoge1(1); // 1, null, []
0008: hoge1(1, 2); // 1, 2, []
0009: hoge1(1, 2, 3); // 1, 2, [3]
0010: hoge1(1, 2, 3, 4); // 1, 2, [3, 4]
0011: hoge1(1, 2, 3, 4, 5); // 1, 2, [3, 4, 5]
POSTデータサイズが無制限
デフォルトで、POSTデータがメモリに保存されなくなった。さらに、64ビット化されたことにより、事実上POSTデータのサイズが無制限になった。大きなデータの授受をするときに便利だ。
任意精度演算
「PHPの演算誤差」で紹介したように、GMP/BC Mathなど任意精度の演算をサポートするモジュールを使う場合、算術演算子(+ – / * など)と比較演算子(< > <= >= など)が利用できなかった。
PHP5.6では、GMPで生成した任意精度の変数はオブジェクトとして扱われ、オペレーターオーバーローディングで普通の数値と同じように扱えるようになる。
PHP5.6では、GMPで生成した任意精度の変数はオブジェクトとして扱われ、オペレーターオーバーローディングで普通の数値と同じように扱えるようになる。
累乗演算子
累乗演算子 "**" が用意される。
定数スカラ式
定数宣言、関数のデフォルト引数、およびクラスのプロパティで、基本的な算術演算や論理演算子が使用できるようになる。
0028: const ONE = 1;
0029: const TWO = ONE * 2;
0030:
0031: function hoge2($a = ONE + self::THREE) {
0032: return $a;
0033: }
PHPデバッガ
PHPデバッガー「phpdbg」が同梱される。
phpdbgでは、PHPのみで簡単にサーバー側アプリのテストが可能になる。$_GET, $_POST, $_COOKIEなどの変数を設定するだけで、PHPアプリの動作をテストできる。
phpdbgでは、PHPのみで簡単にサーバー側アプリのテストが可能になる。$_GET, $_POST, $_COOKIEなどの変数を設定するだけで、PHPアプリの動作をテストできる。
推奨されなくなる機能
非推奨機能 | 代替方法 |
---|---|
非互換のコンテキストからの呼び出し | 将来的に削除予定。 |
$HTTP_RAW_POST_DATA および always_populate_raw_post_data | php://input を使う。 |
iconv および mbstring のエンコーディング設定 | default_charset を使う。 |
参考サイト
- PHP 5.5.x から PHP 5.6.x への移行:PHP公式
- PHP 5.6 に採用されるデバッガ phpdbg を使ってみた:Shin x blog
(この項おわり)
内部的には、POSTデータサイズが無制限になったことや、定数スカラ式や累乗演算子が加わるなど、地味だが便利な改良が行われている。
PHP 5.6のセキュリティサポート期限は2018年(平成30年)12月31日で、すでにサポート終了している。