5

Сокращенный тернарный оператор в PHP

Тернарный оператор — вещь известная и скучная:


$a = $expr1 ? $expr2 : $expr3;

Если $expr1 истинно, результатом $a станет $expr2, иначе $expr3.

А теперь об интересном! Начиная с версии PHP 5.3 можно опустить $expr2.


$a = $expr1 ?: $expr3;

Это равносильно записи:


$a = $expr1 ? $expr1 : $expr3;

Примеры:


$a = true ?: false; // true

$a = false ?: true; // true

$a = 1 ?: 2; // 1

$a = 0 ?: 2; // 2

В мануале об этом упоминается очень сухо и коротко. Ну а что еще добавить?

5 комментариев

  • Декабрь 13, 2012 at 2:13 дп

    […] тернарный оператор” и сразу нашел – http://www.dec5e.ru/2011/04/php-ternary/ правда, не совсем то, но это я тоже хотел оказывается, […]

  • superdimon
    Март 5, 2014 at 5:59 пп

    коротко и ясно, спс

  • Naskalin
    Май 25, 2014 at 1:21 пп

    то, что надо, все понятно, спасибо

  • Июль 19, 2016 at 11:31 дп

    Аналог var v = exp1 || exp2 в JS

  • Алексей
    Сентябрь 20, 2016 at 12:42 пп

    А разве не так нужно писать $a == $expr1? Ведь $a = $expr1 является присвоением.

Leave a Reply

Copyright © 2017 — dec5e | Site design by Trevor Fitzgerald