У меня на компьютере 2 версии Open Server - старая и новая.
В старой PHP 7.3
В новой PHP 8.1
Сейчас я работаю только с новой версией и PHP 8.1.
Установил в проект PHPUnit через composer
packagist - самая свежая версия
10.0.x-dev2023-02-12 08:26 UTC
requires php: >=8.1
аналогично и для 10.0.7
Запускаю консоль в PHPStorm, пишу:
G:\Program Files\OpenServer 5.4.3\domains\test.local>vendor\bin\phpunit
This version of PHPUnit requires PHP >= 8.1.
You are using PHP 7.3.17 (G:\Program Files\OpenServer\modules\php\PHP_7.3\php.exe).
Как видите запуск идет из G:\Program Files\OpenServer 5.4.3\ где PHP 8.1.
А PHPUnit говорит, что G:\Program Files\OpenServer\ где PHP 7.3.
Разумеется, ещё раз проверил phpinfo (а вдруг что то напутал и запустил не то)
Нет, всё верно. PHP Version 8.1.9
Для интереса пошел в PHPUnit, где идет определение версии - там код
if (version_compare('8.1.0', PHP_VERSION, '>'))
{
// Тут пишем что This version of PHPUnit requires PHP >= 8.1. и останавливаем скрипт.
die(1);
.}
Ок. Пишу в своем скрипте.
$PHP_VERSION = PHP_VERSION;
$version_compare = version_compare('8.1.0', $PHP_VERSION, '>');
echo "PHP_VERSION = $PHP_VERSION version_compare =$version_compare <br>";
echo "switch version_compare <br>";
switch ($version_compare) {
case -1: echo '-1 <br>';
case 0: echo '0 <br>';
case 1: echo '1 <br>';
}
Результат
PHP_VERSION = 8.1.9 version_compare =
switch version_compare
0
1
Мануал version_compare
По умолчанию функция version_compare() возвращает -1, если первая версия меньше второй; 0, когда они равны; 1, если вторая меньше первой.
0 - равны (8.1.0=8.1.9) ну ок предположим сравнение идет как 8.1 , но 1 - ???
Собственно, в чем дело? Почти самая свежая версия php - а php unit ругается.