(PHP 4 >= 4.0.7, PHP 5)
version_compare — ふたつの "PHP 標準" バージョン番号文字列を比較する
version_compare()は、ふたつの "PHP 標準" バージョン 番号文字列を比較します。この関数は、いくつかのバージョンの PHP でのみ 動作するプログラムを書きたい場合に有用です。
この関数はまず、バージョン文字列の _, -, + をドット . で置き換えます。 さらに、数値でない部分の前後にドット . を追加します。 例えば '4.3.2RC1' は '4.3.2.RC.1' となります。 次に、explode('.', $ver) とするのと同じように結果を分割し、左から右へ 各部分を比較していきます。特殊な文字列が含まれている場合は以下の順で 並べ替えます: dev < alpha = a < beta = b < RC < pl. この方法により、'4.1' と '4.1.2' のようなバージョンの違いだけではなく PHP 固有の開発ステータスの違いも判断することが可能となります。
最初のバージョン番号。
ふたつめのバージョン番号。
三番目のオプション引数 operator を指定した場合、 特定の関係を調べることが可能です。指定可能な演算子を以下に示します。 <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne
このパラメータは大文字小文字を区別するので、すべて小文字で指定しなければなりません。
デフォルトでは、version_compare() の返り値は 最初のバージョンが 2 番目のバージョンより小さい場合に -1、 同じ場合に 0、そして 2 番目のバージョンのほうが小さい場合に 1 となります。
オプションの引数 operator を使用すると、 指定した演算子による関係を満たす場合に TRUE、それ以外の場合に FALSE を返すようになります。
以下の例では定数 PHP_VERSION を使用しています。 この定数には、コードを実行している PHP のバージョンが格納されています。
例1 version_compare() の例
<?php
if (version_compare(PHP_VERSION, '6.0.0') === 1) {
echo '6.0.0 より新しいバージョンの PHP を使っています。バージョンは ' . PHP_VERSION . " です。\n";
}
if (version_compare(PHP_VERSION, '5.3.0') === 1) {
echo '5.3.0 より新しいバージョンの PHP を使っています。バージョンは ' . PHP_VERSION . " です。\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '>')) {
echo 'PHP 5 を使っています。バージョンは ' . PHP_VERSION . " です。\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'PHP 4 を使っています。バージョンは ' . PHP_VERSION . " です。\n";
}
?>
注意: PHP_VERSION 定数には現在の PHP のバージョンが格納されます。
注意: プレリリース版 (たとえば 5.3.0-dev など) は、それに対応する正式版 (5.3.0) より小さいとみなされます。