インストールしてみましょう

pear install PHP_Compat

また、レンタルサーバなどでは自分に割り当てられた領域以降にパッケージを直接 FTPなどで上げたいような人もいるでしょうから、そういった方はhttp://pear.php.net/package/PHP_Compat から最新版をダウンロードする事が出来ます(現時点での最新版は1.5.0)

使い方は簡単。使いたい関数や定数を、動作するファイルの先頭等でロードするだけ。ロード後は通常と同じように、特に意識せずに関数や定数を利用する事が出来ます。

ロードの方法は大きくわけて2種類あります。

例1 ロードの仕方1(名前指定)

<?php
require_once 'PHP/Compat.php'//Compat.phpの呼び出し

// file_put_contents関数を利用したいとする
// 関数をロードする場合は、loadFunctionを利用する
PHP_Compat::loadFunction('file_put_contents');

// 複数の関数を同時にロードする場合、引数を配列にして渡す
PHP_Compat::loadFunction(array('file_get_contents','file_put_contents'));


// E_STRICT定数を利用したいとする
// 定数をロードする場合は、loadConstantを利用する
PHP_Compat::loadConstant('E_STRICT');

// 定数も関数と同じで、複数同時にロードする場合は引数を配列にして渡す
PHP_Compat::loadConstant(array('E_STRICT''PATH_SEPARATOR'));


//上記はクラスを利用したロードだが、下記の様にクラスを用いずロードもできる
require_once 'PHP/Compat/Function/file_get_contents.php';
require_once 
'PHP/Compat/Function/file_put_contents.php';
require_once 
'PHP/Compat/Constant/E_STRICT.php';
require_once 
'PHP/Compat/Constant/PATH_SEPARATOR.php';
    
// 以下、コード
?>

例2 ロードの仕方2(バージョン指定)

<?php
require_once 'PHP/Compat.php'//Compat.phpの呼び出し

// ここで指定したバージョンまでの全ての関数と定数をロード
// 引数を省略すると、全ての関数と定数をロードします
$components PHP_Compat::loadVersion('4.3.0');

// ロードされたコンポーネントのリストが返るので確認もできる
print_r($components);
?>

例1は特定の関数や定数のみをロードしようとする場合。例2はバージョン指定で、現在動作しているバージョンから指定したバージョンまでで追加する関数や定数が使えるようになります。用途に応じて使い分けるといいでしょう。

ロードできるコンポーネントの全てのリストはこちらから参照できます。http://pear.php.net/manual/en/package.php.php-compat.components.php

PHP5には4には無い関数がいくつかあるので、PHP4だけど5の関数を使ってみたいという場合で、レンタルサーバで4しか使えないとかいう場合などにも便利かと思います。

しかし、セキュリティ等の問題がありますので、可能ならば最新バージョンを利用したいですね。



(アシアル 古見澤宏)


この記事は、アシアルが運営するPHP開発者のためのポータル&コミュニティサイト「PHPプロ!」で毎週配信しているPHP・TIPSメーリングリストを再録したものです。
同サイトでは、他にもPHP最新ニュースや、困ったときのQ&A掲示板、初心者向けのPHP講座など、PHP開発者をサポートする情報を掲載しています。