array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.version-compare.php', 1 => 'version_compare', ), 'up' => array ( 0 => 'ref.info.php', 1 => 'Опции PHP/информационные функции', ), 'prev' => array ( 0 => 'function.sys-get-temp-dir.php', 1 => 'sys_get_temp_dir', ), 'next' => array ( 0 => 'function.zend-thread-id.php', 1 => 'zend_thread_id', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/info/functions/version-compare.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
version_compare — Сравнивает две «стандартизованные» строки с номером версии PHP
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', но и специфичные
версии, включающие статус разработки.
version1
Номер первой версии.
version2
Номер второй версии.
operator
Необязательный параметр operator
.
Возможные значения:
<
,
lt
, <=
,
le
, >
,
gt
, >=
,
ge
, ==
,
=
, eq
,
!=
, <>
,
ne
.
Аргумент чувствителен к регистру, поэтому значения должны быть в нижнем регистре.
По умолчанию функция version_compare() возвращает
-1
, если первая версия меньше второй;
0
, когда они равны;
1
, если вторая меньше первой.
При использовании аргумента operator
функция
вернёт true
, если выражение в соответствии с оператором верно, и
false
в противном случае.
В примере ниже используется константа PHP_VERSION
,
она содержит номер версии PHP, который выполняет код.
Пример #1 Пример использования version_compare()
<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
echo 'Я использую PHP версии не ниже 7.0.0, моя версия: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
echo 'Я использую PHP версии не ниже 5.3.0, моя версия: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
echo 'Я использую PHP 5.0.0 или выше, моя версия: ' . 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().