Phpversion: примеры (PHP)
phpversion(?string $extension = null): string|falseФункция phpversion возвращает строку с текущей версией интерпретатора PHP. Эта функция применяется для проверки установленной версии PHP во время выполнения скрипта, что важно для обеспечения совместимости кода с конкретными возможностями языка.
Функция имеет один необязательный параметр:
- $extension (string) — имя расширения. Если указано, функция вернёт версию этого расширения, или
false, если расширение не загружено.
Без параметра функция возвращает строку с номером версии PHP, например, '8.2.10'.
<?php
echo phpversion();
?>8.2.10
<?php
$json_version = phpversion('json');
if ($json_version) {
echo "Версия расширения JSON: {$json_version}";
} else {
echo "Расширение JSON не загружено.";
}
?>Версия расширения JSON: 1.7.0
- PHP_VERSION — предопределённая константа, содержащая версию PHP. Отличается от функции тем, что возвращает версию, с которой был скомпилирован интерпретатор, и не может проверить версию расширения.
- version_compare() — функция для сравнения номеров версий. Часто используется вместе с
phpversion()илиPHP_VERSIONдля условного выполнения кода в зависимости от версии. - phpinfo() — выводит обширную информацию о конфигурации PHP, включая версию. Используется для отладки, а
phpversion()— для получения только номера версии программным способом.
Phpversion в Python
import sys
print(sys.version)3.11.4 (main, Jun 20 2023, 17:23:00)
console.log(process.version)v18.17.0
Phpversion в MySQL
SELECT VERSION();8.0.34
В отличие от PHP, в этих языках обычно нет встроенной функции для проверки версии конкретного модуля через единый интерфейс.
<?php
// Неправильно: функция всегда возвращает строку или false, а не true.
if (phpversion()) {
echo "Версия получена";
}
// Правильно: явная проверка на false.
if (phpversion('imagick') !== false) {
echo "Расширение imagick загружено";
}
?>Версия получена
<?php
// Неправильное строковое сравнение.
if (phpversion() >= '8.2') {
echo "Версия 8.2 или выше";
}
// Правильное сравнение через version_compare.
if (version_compare(phpversion(), '8.2', '>=')) {
echo "Версия 8.2 или выше";
}
?>Версия 8.2 или выше
В PHP 8 функция phpversion() не претерпела значительных синтаксических изменений. Основные отличия связаны с возвращаемыми значениями для расширений, которые теперь могут иметь семантическое версионирование. Также в целом повышена стабильность и производительность функции.
<?php
// Проверка версии перед использованием новой функциональности.
if (version_compare(phpversion(), '8.1.0', '>=')) {
// Код с использованием нововведений PHP 8.1.
enum Status { case Active; case Inactive; }
echo "Используется PHP 8.1+";
} else {
echo "Требуется обновление PHP";
}
?>Используется PHP 8.1+
<?php
$required_extensions = ['pdo_mysql', 'mbstring', 'xml'];
foreach ($required_extensions as $ext) {
$ver = phpversion($ext);
echo $ver ? "{$ext}: {$ver}" : "{$ext}: не загружено";
echo "\n";
}
?>pdo_mysql: 5.7.0 mbstring: 2.0 xml: 2.9.0
<?php
// Запись информации о версиях в лог.
$log_entry = date('Y-m-d H:i:s') . " | PHP: " . phpversion() .
" | JSON: " . phpversion('json') . PHP_EOL;
file_put_contents('version_log.txt', $log_entry, FILE_APPEND);
?>// Содержимое файла version_log.txt // 2024-01-15 14:30:00 | PHP: 8.2.10 | JSON: 1.7.0