powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Непонятки с тернарным оператором
6 сообщений из 6, страница 1 из 1
Непонятки с тернарным оператором
    #38838655
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, есть незамысловатая конструкция:

Код: php
1.
2.
3.
4.
5.
6.
$registry->set("ipAddress", getenv('HTTP_CLIENT_IP')?:
                                getenv('HTTP_X_FORWARDED_FOR')?:
                                    getenv('HTTP_X_FORWARDED')?:
                                        getenv('HTTP_FORWARDED_FOR')?:
                                            getenv('HTTP_FORWARDED')?:
                                                getenv('REMOTE_ADDR'));



Локально версия пхп 5.3.13 - все ок.
На сервере 5.2.17-pl0-gentoo - вылазит ошибка: Parse error: syntax error, unexpected ':' in /home/m/mytavatuy/kabinet/public_html/coba/index.php on line 33

Подскажите, что не так то, сам разобраться не могу :( Заранее благодарю!
...
Рейтинг: 0 / 0
Непонятки с тернарным оператором
    #38838663
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос решен: выставил на хостинге версию 5.3
...
Рейтинг: 0 / 0
Непонятки с тернарным оператором
    #38838683
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korshun,

Ого... 5.3 реально такое хавает?
Правильно я понимаю, что это сокращение записи(?):

Код: php
1.
x?x:y


А теперь можно и
Код: php
1.
x?:y



P.s. Это очень полезно в плане читабельности кода, когда меньше временных переменных плодится для вставки в функции. (как в данном случае, взять первое не пустое значение).
...
Рейтинг: 0 / 0
Непонятки с тернарным оператором
    #38838840
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, запамятовал только, что конструкция работает только с пхп 5.3+

http://php.net/manual/ru/language.operators.comparison.php
Начиная с версии PHP 5.3 также стало возможным не писать среднюю часть тернарного оператора. Выражение expr1 ?: expr3 возвращает expr1 если expr1 имеет значение TRUE, и expr3 в другом случае.
...
Рейтинг: 0 / 0
Непонятки с тернарным оператором
    #38839028
JeStone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
korshun,

после таких адских "лесенок" даже пропадает желание защищаться PHP (или PHP-программистов) =(
...
Рейтинг: 0 / 0
Непонятки с тернарным оператором
    #38839049
korshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeStonekorshun,

после таких адских "лесенок" даже пропадает желание защищаться PHP (или PHP-программистов) =(
Извини, не понял, что ты имеешь в виду :(
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Непонятки с тернарным оператором
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]