преобразовать некоторые строки оператора php в тернарный оператор

Это мой первый раз в обучении троичного оператора. То, что я пытаюсь сделать здесь, — это преобразовать некоторые строки оператора php в тернарный оператор. Может кто-нибудь, пожалуйста, помогите мне проверить, правильно ли то, что я здесь делаю. И как повторить это. Благодарю.

 <?php
$tmp = 'this.ppt';
$tail = array_pop(explode('.',$tmp)); //'{file}'
$allow = array('ppt','pdf','docx');
if (in_array($tail, $allow) {
$type = $tail;
}
elseif ($tail == 'doc') {
$type = 'docx';
}
else {
$type = 'img';
}
echo $type;
?>

TP

  $tail = ($type == $tail ? 'ppt','pdf','docx' : ($type == 'doc') ? 'docx' : 'img()'))

1

Решение

Не совсем там. Это эквивалент вашего if / elseif / else в виде одной строки:

$tmp = 'this.ppt';
$tail = array_pop(explode('.',$tmp)); //'{file}'
$allow = array('ppt','pdf','docx');
$type = (in_array($tail, $allow) ? $tail : ($tail == 'doc' ? 'docx' : 'img'));

Однако я ставлю под сомнение вашу идею использовать троичный оператор услышать. Как отметил @zerkms, ваш оригинальный код более разборчив и работает нормально.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]