Используйте оператор if
в этой ситуации.
Тернарный оператор должен возвращать одно значение, следовательно, ограничение одного оператора.Вы также не должны использовать функции с какими-либо значительными побочными эффектами в троичном операторе.
То, что вы предлагаете, неизбежно приводит к очень нечитаемому коду, вы должны сосредоточиться на удобочитаемости, а не на количестве строк / символов.Большая часть кода читается намного чаще, чем записывается / редактируется.
РЕДАКТИРОВАТЬ:
Вы также можете использовать assert для аналогичных целей.
assert($pMana > 20);
$pMana -= 20
Однако утверждения никогда не должны использоваться для обработки общих ситуаций (таких как проверка пользовательского ввода).Практическое правило заключается в том, что ошибочное утверждение должно ВСЕГДА указывать на ошибку в вашем коде.Выражения утверждений должны охватывать предположения о вводе из других частей состояния программы / программы под названием «Поймай ошибки как можно скорее» (в этом случае оно будет использоваться для предотвращения ошибок, приводящих к тому, что мана станет отрицательной, что может привести к исцелению).позже).