先日、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
- ジェネレータ追加
- finallyキーワード追加
- password_hash()追加
- OPcacheモジュール追加
5.6
- 定数やプロパティの宣言、関数のデフォルト引数などで式が使用可能になった
- ...演算子の追加
- 累乗演算子
**
の追加 -
use function
およびuse const
で関数や定数もインポートできるようになった - phpdbg追加
7
- 5.6と比較して2倍高速
- メモリ使用量の削減
- 抽象構文木の追加
- エラーを例外扱いにできるように
- 無名クラスの追加
- 引数のスカラー型宣言が可能に
- 戻り値の型宣言が可能に
- Null合体演算子
??
追加 - 宇宙船演算子
<=>
追加 - Closure::call() 追加