Конструкция «??»

В ПХП 7 появилась, наконец, конструкция, которая должна была быть в языке с первых версий:
echo $_GET['var'] ?? 'default'; // PHP 7
echo isset($_GET['var']) ? $_GET['var'] : 'default'; // PHP 5.6 и ниже
Очень похоже на тернарный оператор без средней части, появившийся в версии 5.3, но с одним отличием: проверяется не ложь или истина, а существование.

Теперь в ПХП можно писать намного более эмоционально:
echo X-D ? :-D ??!! O_o; // это работает в PHP 7, я даже могу сказать что это значит.
Может кому-то пригодится, я собирал у себя на «Маке» текущую версию ПХП 7 при помощи следующих команд:
git clone https://github.com/php/php-src.git
cd php-src

brew install re2c
brew info bison27
PATH=/usr/local/opt/bison27/bin/:$PATH

./buildconf
./configure --prefix=/opt/php-5.7 --disable-all
make
make install
12 октября 2014 19:43

BOLVERIN (инкогнито)
12 октября 2014, 22:05

а почему пишите PHP 7, а не PHP 5.7?

Евгений Степанищев (bolknote.ru)
12 октября 2014, 22:11, ответ предназначен BOLVERIN

Потому что эта версия PHP будет называться PHP 7: http://bolknote.ru/2014/08/25/~4195

Имярекъ (инкогнито)
20 октября 2014, 04:56, ответ предназначен BOLVERIN

Потому что теперь это тренд!

Евгений Степанищев (bolknote.ru)
20 октября 2014, 09:49, ответ предназначен Имярекъ

Да тренд-то тут причём? Причины почему версия называется 7, а не 6 вполне логичны: PHP6 должна была быть вполне определённой версией с вполне определёнными ожиданиями. На эту тему написаны статьи, вышли книги. Если теперь выпустить шестую версию, люди будут дизориентированы.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)