Edited at

PHPの11年を振り返る

More than 3 years have passed since last update.

先日、PHP7がリリースされましたね。

使ってみたい機能があるなーと思いつつ、業務で使用できるのはいつになることやら。

この記事ではPHP、11年の歴史を振り返って見たいと思います。アドベントカレンダーの締め切りに追われた手抜き記事ではないです。


リリース

バージョン
リリース日
リリース文
新機能

5.0
2004.7.13
http://news.php.net/php.announce/50
http://php.net/manual/ja/migration5.php

5.1
2005.11.24
http://php.net/releases/5_1_0.php
http://php.net/manual/ja/migration51.php

5.2
2006.11.2
http://php.net/releases/5_2_0.php
http://php.net/manual/ja/migration52.php

5.3
2009.6.30
http://php.net/releases/5_3_0.php
http://php.net/manual/ja/migration53.php

5.4
2012.3.1
http://php.net/releases/5_4_0.php
http://php.net/manual/ja/migration54.php

5.5
2013.6.20
http://php.net/releases/5_5_0.php
http://php.net/manual/ja/migration55.php

5.6
2014.8.28
http://php.net/releases/5_6_0.php
http://php.net/manual/ja/migration56.php

7
2015.12.3
http://php.net/releases/7_0_0.php
http://php.net/manual/ja/migration70.php


主な変更点

主観です。


5.0


  • ZendEngine2が組み込まれ、オブジェクトモデルが強化された

  • SQLiteがバンドルされた

  • SimpleXMLが追加された


5.1


  • 日付関係のコードが書き直され、タイムゾーンサポートが改善された

  • パフォーマンスが大幅に向上

  • PDOがデフォルトで有効になった


5.2


  • メモリ管理が改善された

  • Filter、JSON、Zipモジュールの追加

  • Datetimeクラス追加


5.3


5.4


  • パフォーマンスが改善された


  • トレイト追加

  • 配列の短縮構文が追加された $a = [1, 2, 3, 4];

  • 関数の返り値を配列として扱えるよになった foo()[0]

  • ビルトインWEBサーバーが組み込まれた


  • <?= が常に有効になった

  • タイプヒンティングの追加


5.5


5.6


  • 定数やプロパティの宣言、関数のデフォルト引数などで式が使用可能になった


  • ...演算子の追加

  • 累乗演算子 ** の追加


  • use function および use const で関数や定数もインポートできるようになった


  • phpdbg追加


7


  • 5.6と比較して2倍高速

  • メモリ使用量の削減

  • 抽象構文木の追加

  • エラーを例外扱いにできるように

  • 無名クラスの追加

  • 引数のスカラー型宣言が可能に

  • 戻り値の型宣言が可能に

  • Null合体演算子 ?? 追加

  • 宇宙船演算子 <=> 追加


  • Closure::call() 追加