PHP 4 で使用できない機能

このページは、PHP 4 で使用できない定数や関数などをまとめる予定のページです。

注意

  • このページを作ったひとが備忘のためにまとめているため網羅性はありません。
  • 実際に対応が必要になったことのあるもの (使えると思っていたり普通に使ってしまっていて使えなかったもの) を中心にまとめています。
  • 基本的に PHP 4 は使用しないでください。(サポートが終了しているため。この資料は急にヘルプで対応することになった時などに参考にしてください)

一覧

構文

項目 対応 ver. 対応方法
複雑な変数展開 5 単純な . の連結にする
アクセス権 (アクセス修飾子) 5 フィールドは var にする。メソッドにはアクセス修飾子をつけない
無名関数 5.3 create_function() または通常の関数定義
名前空間 5.3.0 使わない
配列の省略記法 5.4 array()

定数

項目 対応 ver. 対応方法
PHP_EOL 5.0.2 ※1
E_RECOVERABLE_ERROR 5.2.0 使わない (か defined() で確認)
E_DEPRECATED 5.2.0
E_USER_DEPRECATED 5.2.0
※1 PHP_EOL 対応の例
if (!defined('PHP_EOL')) define('PHP_EOL', "\n");

関数・クラス

項目 対応 ver. 対応方法
date_default_timezone_set() 5.1.0 ※1
file_put_contents() 5 upgrade.php を使用する
hash 5.1.2 sha1() 等を使用する (sha256 の代替はない + sha1() も 4.3.0 以上)
json_encode() 5.2.0 upgrade.php を使用する
mysqli_***() 5 mysql_***() 関数を使う
PDO 5.1.0 〃 (DB が MySQL の場合)
session_set_cookie_params() の 第5引数 (httponly) 5.2.0 ※2
mb_***() の ISO-2022-JP-MS エンコーディング 5.2.1 ISO-2022-JP を使う
※1 date_default_timezone_set 対応の例
// タイムゾーン設定 (5.1.0 以上)
if (version_compare(PHP_VERSION, '5.1.0', '>=')) {
    date_default_timezone_set('Asia/Tokyo');
}
else {
    // 上記未満の場合 (ini_set() の date.timezone も 5.1.0 以上)
    @putenv('TZ=Asia/Tokyo');
}
※2 session_set_cookie_params httponly 対応の例
if (version_compare(PHP_VERSION, '5.2.0', '>=')) {
    session_set_cookie_params($lifetime, $path, $domain, $secure, $httponly);
}
else {
    session_set_cookie_params($lifetime, $path, $domain, $secure);
}