たんたんめん日記

ソシャゲ関連のなんでもやさん備忘録

今更ながら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();
$ cd ~/public_html
$ php -S localhost:8000
  • PHP-FPM: 設定項目 process.max を追加
    nginx+php-fpm実行時のお供に。

  • debug_backtracedebug_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 ;
}
<?php

class Test{}

echo Test::class;