6月11日、待望のPHP 7のアルファ版がリリースされ、このリリースは7番目のブランチの始まりです。 最終バージョンのリリースは2015年11月に予定されています。 カットの下には、主要な革新の不完全なリストがあります。
- パフォーマンスの改善。 PHP 7は、PHP 5.6よりも最大2倍高速に実行されます。
- 略記の使用のサポートが追加されました。
use Symfony\Component\Console\{ Helper\Table, Question\ChoiceQuestion as Choice, Question\ConfirmationQuestion, };
- 演算子「??」を追加しました (ヌル合体演算子)。変数の存在を確認し、その値またはデフォルト値を返すことができます。
たとえば、次の構成:
$action = isset($_POST['action']) ? $_POST['action'] : 'index';
これは簡単に次のように書くことができます:
$action = $_POST['action'] ?? 'index';
- 64ビットビルドで2 ^ 31バイトより長い文字列のサポートが追加されました。
- Closure :: call(object $ to [、mixed $ parameters])メソッドが追加されました。これにより、任意の$ thisで匿名関数を呼び出すことができます。
- 文字列に構文\ u {xxxxxx}を追加し、文字列に任意のUnicode文字を指定できるようにしました。
- 配列は、define()で宣言された定数の値として指定できるようになりました。
- 「スペースシップ演算子」とも呼ばれる新しい比較演算子<=>が追加されました。 $ a <=> $ b構文は、$ aがそれぞれ$ bより小さい、等しい、または大きい場合、-1、0、または+1を返します。 usort()のコールバックで使用すると便利です。
- 予約済みのキーワードをメソッド名として使用できるようになりました。
$object::new('foo', 'bar')->forEach(function($index, $item) {});
- PHP 4スタイルのコンストラクター構文(コンストラクターメソッドの名前はクラス名と同じです)は非推奨になりました。
- 非静的メソッドの静的呼び出し(::)は非推奨になりました。
- 定数PHP_INT_MINが追加されました。
- INI asp_tagsディレクティブを削除しました。 有効にしようとすると、致命的なエラーが発生します。 また、ASPスタイルのタグサポート(<%)も削除されました。
- INIディレクティブ「always_populate_raw_post_data」を削除しました。 したがって、変数$ HTTP_RAW_POST_DATAは使用できなくなりました。 代わりにphp://入力ストリームへの入力ハンドルを使用します。
- foreach()を使用して配列を反復処理しても、current()/ next()/ reset()などの関数を使用して取得および変更できる配列の内部ポインターは移動しなくなりました。 また、値ごとのforeachは、常に配列のコピーで動作します。
- 整数のビット数を超えるビット数による左ビット単位シフト演算子(<<)は常に0を返します。それ以前は、結果はプロセッサアーキテクチャに依存していました。 同様の右シフトは、元の数値の符号に応じて常に0または-1を返します(シフトは符号を担当する最上位ビットには影響しません)。
- 16進数を含む行は、常に文字列として扱われ、数字としては扱われません。is_numeric( "0xFF")はfalseになりました。
- Windows用の64ビットビルドの整数は、32ビットではなく64ビットとして表されるようになりました。これにより、Windowsでx64アセンブリを使用すると、大きな数を操作する必要がある場合に無意味なタスクになります。
- PCREの/ e修飾子のサポートが削除されました。 preg_replace_callback()関数を使用して、同様の機能を実装できます。
- スカラー型の型ヒントのサポートが追加されました。 以前は、型制御はクラス、インターフェース、配列、および呼び出し可能型に対してのみ可能でした。
- 古いサポートされていないSAPIと拡張機能を削除しました。
英語の変更のより詳細なリストは、示されたソースにあります。
php.net
github.com/php/php-src/blob/php-7.0.0alpha1/UPGRADING