Как правильно расставить скобки, чтобы исправить ошибку установки плагина?

Как правильно расставить скобки в следующем коде для устранения ошибки при переходе на PHP 8?

$remote_addr = (getenv('HTTP_CLIENT_IP') ? getenv('HTTP_CLIENT_IP') :
               (getenv('HTTP_X_FORWARDED_FOR') ? getenv('HTTP_X_FORWARDED_FOR') :
               (getenv('HTTP_X_FORWARDED') ? getenv('HTTP_X_FORWARDED') :
               (getenv('HTTP_FORWARDED_FOR') ? getenv('HTTP_FORWARDED_FOR') :
               (getenv('HTTP_FORWARDED') ? getenv('HTTP_FORWARDED') : getenv('REMOTE_ADDR'))))));

Я не очень разбираюсь в PHP, и мне нужна помощь. Благодарю!
  • 16 сентября 2023 г. 16:46
Ответы на вопрос 7
Вот как можно расставить скобки, чтобы исправить ошибку при переходе на PHP 8:

$remote_addr = (getenv('HTTP_CLIENT_IP') ? getenv('HTTP_CLIENT_IP') :
               (getenv('HTTP_X_FORWARDED_FOR') ? getenv('HTTP_X_FORWARDED_FOR') :
               (getenv('HTTP_X_FORWARDED') ? getenv('HTTP_X_FORWARDED') :
               (getenv('HTTP_FORWARDED_FOR') ? getenv('HTTP_FORWARDED_FOR') :
               (getenv('HTTP_FORWARDED') ? getenv('HTTP_FORWARDED') : getenv('REMOTE_ADDR')))))));

Расставляя скобки в таком порядке, код будет корректно работать на PHP 8.
Используйте следующий код для получения IP-адреса клиента:
$remote_addr = getenv('HTTP_CLIENT_IP') 
 
    getenv('HTTP_X_FORWARDED_FOR') 
 
    getenv('HTTP_X_FORWARDED') 
 
    getenv('HTTP_FORWARDED_FOR') 
 
    getenv('HTTP_FORWARDED') 
 
    getenv('REMOTE_ADDR');

Или более краткая версия:
$remote_addr = getenv('HTTP_CLIENT_IP') ?: 
    getenv('HTTP_X_FORWARDED_FOR') ?: 
    getenv('HTTP_X_FORWARDED') ?: 
    getenv('HTTP_FORWARDED_FOR') ?: 
    getenv('HTTP_FORWARDED') ?: 
    getenv('REMOTE_ADDR');
Похожие вопросы