Как заставить PHP отобразить ошибку в операторе IF?

#php #printing #echo

#php #печать #echo

Вопрос:

Как мне напечатать ошибку, если один из них не работает или, скорее, не отображает некоторые из них?

 if ( $what === $toyota ) {
$print = "Camry";
} elseIF($what === $benz) {
$print = "S350";
} elseIF($what === $bmw) {
$print = "M5";
} elseIF($what === $honda) {
$print = "Accord";
} elseIF($what === $acura) {
$print = "mdx";
} elseIF($what === $jaguar) {
$print = "rx";
} elseIF($what === $landrover) {
$print = "rover";
} elseIF($what === $ford) {
$print = "sucks";
} elseIF($what === $gm) {
$print = "garbage";
} elseIF($what === $saturn) {
$print = "sat";
} elseIF($what === $jeep) {
$print = "not sure";
} elseIF($what === $chevy) {
$print = "whatever";
} elseIF($what === $porsche) {
$print = "Panamera";
} elseIF($what === $volkswagan) {
$print = "Passat";

}

print("$print");
}

}
  

Комментарии:

1. Вы когда-нибудь слышали о инструкции switch?

2. Возможно, что вам нужен switch оператор .

3. тем не менее, это сработало для чего-то другого, что я делал, но по какой-то причине его здесь нет. Так или иначе, чтобы напечатать ошибку?

4. В целях отладки вам следует добавить ту else{ ... } ветку, которую я перечислил, чтобы посмотреть, попадет ли она в это. Если этого не происходит, то я предполагаю, что она попадает в $what === $honda ветку и устанавливает $print в пустую строку. Если это не поможет вернуться, я могу предложить больше шагов отладки

5. Хорошо, это ваша проблема. $print никогда не устанавливается. Вы можете либо добавить ветку else, как я предложил, и поместить $print = "error"; туда, либо инициализировать ее перед лестницей if-elseif, просто добавив $print = ""; прямо перед if($what === $toyota) строкой (или обе).

Ответ №1:

 $map = array($wolskwagan => 'Passat', $chevy => 'whatever');
if (isset($map[$what])) print $map[$what]; else print 'error'; `
  

Ответ №2:

как насчет добавления простого else в конце?

 } elseIF($what === $volkswagan) {
    $print = "Passat";
} else {
    $print = "ERROR !!!";
}
  

Ответ №3:

Каждая из ваших логических ветвей сравнивает переменную $ what с другой переменной, названной в честь марки автомобиля. ie ($ what === $ honda) Где и для чего вы устанавливаете все эти различные переменные перед началом логики? Похоже, было бы проще написать ($ what === «honda») или использовать оператор switch, как все рекомендуют.

Также при распечатке переменной кавычки не нужны.

Просто напечатайте ($ print) и почему бы не напечатать ($ what), чтобы точно увидеть, что это такое.

Комментарии:

1. Верно, вам не нужны кавычки, но они также не вызовут ошибку.