• Теория
  • Теория

Сокращённый тернарный оператор ?:

Мы преобразовали значение из адресной строки в число, используя функцию intval. Если функция вернула ноль, то адрес указан неверно. Чтобы в этом случае открывалась первая страница каталога, нужно указать переменной $page значение по умолчанию.

Используем сокращённый тернарный оператор — ?:. Он обозначается знаком вопроса и двоеточием:

$foo = значение-1 ?: значение-2

Оператор работает так: если значение-1 истинно, то в переменную запишется оно. А если ложно, то запишется значение-2.

Чтобы открывать по умолчанию первую страницу каталога, укажем переменной $page второе возможное значение:

$page = intval($_GET['page']) ?: 1;

Если из параметра в адресной строке нельзя извлечь число, функция intval вернёт ноль.

// Функция intval вернула 0
$page = 0 ?: 1;

В PHP ноль считается ложным. Так как первое значение ложное, в переменную запишется второе значение — число 1.

Ложными в PHP также считаются строки '' и '0', булево значение false и массивы без элементов. Остальные числа, строки и массивы — истинные.

Используем сокращённый тернарный оператор, чтобы указать второе значение для переменной $page. После этого убедимся, что первая страница каталога открывается даже тогда, когда указано неверное значение параметра.

Тернарный оператор похож на условие if. Об их сходстве и различиях, а так же о полной версии тернарного оператора мы поговорим в одном из следующих заданий.

Минимальный вид табов
  • index.html
HTML
HTML

Вы перешли на другую страницу

Кликните внутри мини-браузера, чтобы поставить фокус в это окно.

100%
Бабушка Кекс

Притормози, дружище

Проходить вызовы части «Числа и строки в PHP» тренажёра «Знакомство с PHP» можно после регистрации и оформления подписки.