今更ながらPHP5.4とPHP5.5の変更点をまとめた
しばらくPHPから遠ざかっていたんですが、久しぶりにPHPを使うことになりました。
どうせなら最新のPHP5.5を使ってみようかと思うんですが、なんせ脳内は5.3で停止している…
ということで、恐ろしく今更ながら5.4、5.5の変更点をまとめてみました。
自分のコーディングに関係ありそうなところのみですが…
PHP5.4
traitの追加
配列の短縮構文
$a = [1,2,3];
- 関数の返り値を配列として扱える
function return_array(){ return [1,2,3]; } echo return_array()[1];
<?=が常に有効
short_open_tagの設定の影響を受けないクラスのインスタンス作成と同時にメンバにアクセス出来る
class Test{ public function hello(){ echo ‘hello'; } } (new Test())->hello();
- 開発用Webサーバー
$ cd ~/public_html $ php -S localhost:8000
debug_backtrace と debug_print_backtrace にlimitオプションが追加
返すスタックフレームの量を制限できる。デバッグ時のお供に。hex2bin 関数の追加
未だにpack関数は良く分からない。http_response_code 関数の追加
HTTP レスポンスコードを取得または設定出来る。
http_response_code(404);
session_status 関数の追加
現在のセッションの状態を返す。MySQLのライブラリ
MySQL 用の拡張モジュールである mysql や mysqli 、 PDO_mysql が、デフォルトのライブラリとして mysqlnd を使うようになった。$_SERVER['REQUEST_TIME_FLOAT’]の追加
リクエスト時間がマイクロ秒単位で取得出来る。デバッグのお供に。mbstring.script_encodingが削除
zend.script_encodingを使用するsession_is_registered(), session_register() および session_unregister()の削除
昔は良く使っていたような気がする。
PHP5.5
- finally句の追加
try { Throw new Exception('例外発生'); } catch( Exception $e ){ echo $e->getMessage(); } finally { echo 'ここは通りますよ’ ; }
- ジェネレータの追加
$test_array = [1,2,3,4,5]; function g_TestArray( $array ){ foreach( $array as $each ){ yield $each; } } foreach( g_TestArray($test_array) as $test_val ){ echo $test_val ; }
array_column関数
DBから取得したデータと、キャッシュサーバーのデータの結合とかに便利そう。json_last_error_msg 関数
ajaxから送られてきたjsonが壊れてる時とか活躍しそう。cli_set_process_title 、cli_set_process_title 関数
長時間起動し続けるバッチ処理スクリプトのお供に。::classによるクラス名の解決
<?php class Test{} echo Test::class;