Функция is_php_version_compatible()
позволяет убедиться, что версия PHP, используемая на сервере, соответствует минимальным требованиям для работы с определёнными функциями или плагинами. Она возвращает true
, если установленная версия PHP удовлетворяет требованиям, и false
в противном случае.
is_php_version_compatible( string $required ): bool
Функция принимает строку с минимальной требуемой версией PHP и проверяет, установлена ли на сервере версия, равная или выше указанной. Это полезно для сценариев, где вы хотите убедиться, что код или плагин не будут запускаться на устаревшей версии PHP.
Параметры:
- $required (string) (обязательный) — Минимально допустимая версия PHP.
Возвращаемое значение
- true — если установленная версия PHP соответствует требуемой или превышает её.
- false — если установленная версия PHP ниже требуемой.
Примечания к использованию
is_php_version_compatible()
работает на основе функции version_compare()
, используя оператор >=
, чтобы проверить, совместима ли текущая версия PHP с указанной минимальной версией.
Пример 1: Проверка минимальной версии PHP для плагина
Предположим, что плагин поддерживает PHP версии 7.1 и выше. Проверим версию и выведем уведомление в админке, если сервер не соответствует требованиям:
<?php
if ( is_php_version_compatible( '7.1.0' ) ) {
require_once __DIR__ . '/plugin-main.php';
} else {
add_action( 'admin_notices', 'php_version_error_notice' );
}
function php_version_error_notice() {
?>
<div class="notice notice-error">
<p>Ваш сервер использует устаревшую версию PHP. Пожалуйста, обновите PHP до версии 7.1 или выше.</p>
</div>
<?php
}
В этом примере, если версия PHP на сервере ниже 7.1, основной файл плагина не будет подключён, а администратор увидит уведомление о необходимости обновить PHP.
Пример 2: Проверка версии PHP перед использованием специфичной функциональности
Некоторые функции могут работать только на PHP 7.4 или выше. Проверим это перед их вызовом:
if ( is_php_version_compatible( '7.4.0' ) ) {
// Код, требующий PHP 7.4 и выше
$result = array_map(fn($item) => $item * 2, [1, 2, 3]);
echo 'Результат: ' . implode(', ', $result);
} else {
echo 'Эта функция недоступна на вашей версии PHP.';
}
Здесь функция array_map()
использует анонимную функцию с коротким синтаксисом, который поддерживается начиная с PHP 7.4.
Пример 3: Совместимость версии PHP в кастомной теме WordPress
В этом примере добавим проверку версии PHP в файл functions.php
пользовательской темы. Если версия PHP ниже 8.0, администратор увидит предупреждение:
<?php
if ( ! is_php_version_compatible( '8.0.0' ) ) {
add_action( 'admin_notices', 'theme_php_version_notice' );
}
function theme_php_version_notice() {
?>
<div class="notice notice-warning">
<p>Ваша версия PHP устарела для полной совместимости с темой. Обновите PHP до версии 8.0 или выше для лучшей производительности.</p>
</div>
<?php
}
Пример результатов работы is_php_version_compatible()
Вызовы is_php_version_compatible()
могут выглядеть следующим образом:
phpversion(); // 7.3.5 (пример установленной версии)
is_php_version_compatible( '5.6' ); // true, так как 7.3.5 >= 5.6
is_php_version_compatible( '7.0.0' ); // true
is_php_version_compatible( '7.3.0' ); // true
is_php_version_compatible( '7.3.5' ); // true
is_php_version_compatible( '7.4.0' ); // false, так как 7.3.5 < 7.4.0
is_php_version_compatible( '8.0.0' ); // false, так как 7.3.5 < 8.0.0
Заключение
Функция is_php_version_compatible()
— полезный инструмент для проверки совместимости версии PHP. Она проста в использовании и помогает избежать ошибок, связанных с устаревшей версией PHP, особенно при разработке плагинов и тем, использующих более современные функции PHP.