PHP 5.4にアップデートする際の注意

3/1にPHP 5.3から3年ぶりの大幅なアップデートとなる、PHP 5.4がリリースされました。

何が変わったかというのは、公式サイトで確認してもらえば良いかと思います。

PHP 5.3.x から PHP 5.4.x への移行
http://php.net/manual/ja/migration54.php

ここでは今までPHP 5.3で運用していたサイトに導入してみる際に、よくあるパターンとして注意点を書いておきたいと思います。

1. 携帯(ガラケー)サイトでのhtmlspecialchars関数

htmlspecialchars関数の仕様が変更されたことで、第3引数を設定しない場合はデフォルトの文字コードで実行されるようになりました。

通常、PHP/MySQLの内部エンコーディングはUTF-8にしてあると思いますが、ガラケー・サイトの場合はHTMLに表示する直前でShift_JISに変換しているケースが多いかと思います。

echo htmlspecialchars($hoge);

のように書いてあるところを、

echo htmlspecialchars($hoge, ENT_QUOTES, “Shift_JIS”);

に書き直しておかないと、うまく変換できないことになります。

2. date関数がサーバのタイムゾーンを参照しない

date関数の仕様が変更されており、サーバで日本時間を設定していても世界標準時の時刻を取得するようになりました。

PHP側でタイムゾーンを設定している場合は問題ないですが、デフォルトでは未指定となっているので、php.iniで

date.timezone = Asia/Tokyo

と指定しておくか、

date_default_timezone_set(“Asia/Tokyo”);

のように、プログラム中で設定しておく必要があります。

3. session_register関数session_unregister関数の廃止

あまり使わないかもしれませんが、セッションの登録時にsession_register関数を呼び出している場合は削除しておきましょう。

session_start();
$_SESSION[“hoge”] = “hoge”;

で、問題ないと思います。

ということで、いくつかプログラムの修正が必要なケースもあるかもしれませんが、やはり実行スピードの高速化は魅力的なので、バージョンアップを検討してみるのも良いかと思います。

コメントを残す