Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Сокращение тернарной записи

Юрий Шихалеев Профи (993), на голосовании 1 месяц назад
Как в PHP это записать короче?
 $b = null;
if (is_numeric($a->data->book->pages)) $b = $a->data->book->pages;
Так не пойдёт:
 $b = is_numeric($a->data->book->pages) ? $a->data->book->pages : null; 
Так тоже не пойдёт:
 $d = $a->data->book->pages;
$b = is_numeric($d) ? $d : null;
Было бы идеально вот так (но тут нет проверки is_numeric).
 $b = $a->data->book->pages ?? null; 
Нужно строго отсекать тексты, bool-значения, объекты и т.п. Только число / null.

Есть ли какая-нибудь запись, типа:
 $b = ?$a->data->book->pages; 
Или
 $b = (?int)$a->data->book->pages; 
Голосование за лучший ответ
Murad Danilov Профи (909) 2 месяца назад
$b = (function($pages) {
return is_numeric($pages) ? $pages : null;
})($a->data->book->pages);
Похожие вопросы