Как правильно расставить скобки в следующем коде для устранения ошибки при переходе на 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, и мне нужна помощь. Благодарю!
Вот как можно расставить скобки, чтобы исправить ошибку при переходе на 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');