Задать вопрос
Shigaev
@Shigaev
кило

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

Видимо при переходе на php8, получаю ошибку при установке очередного плагина:
Fatal error: Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)`


Ругается на такой код, а именно на первую же строку:
$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 не на «ты».
Спасибо!
  • Вопрос задан
  • 90 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro Куратор тега PHP
frontend developer
del
UPD
function some_plugin_name_get_remote_address() {
  $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')
      ))));

  $remote_addr = str_replace('for=', '', $remote_addr);

  return $remote_addr;
}
Ответ написан
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Тут надо не скобочьки расставлять, а весь это адов говнокод удалять. И оставить только
$remote_addr = getenv('REMOTE_ADDR');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы