version_compare
(PHP 4 >= 4.1.0, PHP 5, PHP 7)
version_compare — ふたつの "PHP 標準" バージョン番号文字列を比較する
説明
version_compare
( string $version1
, string $version2
) : int
version_compare
( string $version1
, string $version2
, string $operator
) : bool
version_compare()は、ふたつの "PHP 標準" バージョン 番号文字列を比較します。
この関数はまず、バージョン文字列の
_
, -
,
+
をドット .
で置き換えます。
さらに、数値でない部分の前後にドット .
を追加します。
例えば '4.3.2RC1' は '4.3.2.RC.1' となります。
次に、左から右へ
各部分を比較していきます。特殊な文字列が含まれている場合は以下の順で
並べ替えます:
ここにないすべての文字列
<
dev
< alpha
=
a
< beta
=
b
< RC
=
rc
< #
<
pl
= p
この方法により、'4.1' と '4.1.2' のようなバージョンの違いだけではなく
PHP 固有の開発ステータスの違いも判断することが可能となります。
パラメータ
version1
最初のバージョン番号。
version2
ふたつめのバージョン番号。
operator
三番目のオプション引数
operator
を指定した場合、 特定の関係を調べることが可能です。指定可能な演算子を以下に示します。<
,lt
,<=
,le
,>
,gt
,>=
,ge
,==
,=
,eq
,!=
,<>
,ne
このパラメータは大文字小文字を区別するので、すべて小文字で指定しなければなりません。
返り値
デフォルトでは、version_compare() の返り値は
最初のバージョンが 2 番目のバージョンより小さい場合に -1
、
同じ場合に 0
、そして 2 番目のバージョンのほうが小さい場合に
1
となります。
オプションの引数 operator
を使用すると、
指定した演算子による関係を満たす場合に true
、それ以外の場合に
false
を返すようになります。
サポートされていない operator
が与えられると、null
を返します。
例
以下の例では定数 PHP_VERSION
を使用しています。
この定数には、コードを実行している PHP のバージョンが格納されています。
例1 version_compare() の例
<?phpif (version_compare(PHP_VERSION, '7.0.0') >= 0) { echo '7.0.0 より新しいバージョンの PHP を使っています。バージョンは ' . PHP_VERSION . " です。\n";}if (version_compare(PHP_VERSION, '5.3.0') >= 0) { echo '5.3.0 より新しいバージョンの PHP を使っています。バージョンは ' . PHP_VERSION . " です。\n";}if (version_compare(PHP_VERSION, '5.0.0', '>=')) { echo '5.0.0 より新しいバージョンの PHP を使っています。バージョンは ' . 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) より小さいとみなされます。
注意:
alpha
やbeta
のようなバージョン文字列は、大文字小文字を区別します。 したがって、どこかから取得したバージョン文字列を PHP の標準に従わせるなら、 まず strtolower() で小文字化してから version_compare() を呼ぶ必要があります。
参考
- phpversion() - 現在の PHP バージョンを取得する
- php_uname() - PHP が稼動しているオペレーティングシステムに関する情報を返す
- function_exists() - 指定した関数が定義されている場合に true を返す