version_compare
ふたつの "PHP 標準" バージョン番号文字列を比較する
&reftitle.description;
intboolversion_compare
stringversion1
stringversion2
stringnulloperator&null;
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 固有の開発ステータスの違いも判断することが可能となります。
&reftitle.parameters;
version1
最初のバージョン番号。
version2
ふたつめのバージョン番号。
operator
オプションの演算子。
指定可能な演算子を以下に示します。
<, lt,
<=, le, >,
gt, >=, ge,
==, =, eq,
!=, <>, ne
このパラメータは大文字小文字を区別するので、すべて小文字で指定しなければなりません。
&reftitle.returnvalues;
デフォルトでは、version_compare の戻り値は
最初のバージョンが 2 番目のバージョンより小さい場合に -1、
同じ場合に 0、そして 2 番目のバージョンのほうが小さい場合に
1 となります。
オプションの引数 operator を使用すると、
指定した演算子による関係を満たす場合に &true;、それ以外の場合に
&false; を返すようになります。
&reftitle.examples;
以下の例では定数 PHP_VERSION を使用しています。
この定数には、コードを実行している PHP のバージョンが格納されています。
version_compare の例
= 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";
}
?>
]]>
&reftitle.notes;
PHP_VERSION 定数には現在の
PHP のバージョンが格納されます。
プレリリース版 (たとえば 5.3.0-dev など)
は、それに対応する正式版 (5.3.0) より小さいとみなされます。
alpha や
beta のようなバージョン文字列は、大文字小文字を区別します。
したがって、どこかから取得したバージョン文字列を PHP の標準に従わせるなら、
まず strtolower で小文字化してから
version_compare を呼ぶ必要があります。
&reftitle.seealso;
phpversion
php_uname
function_exists