Обработка переменных внутри оператора if - PHP - PullRequest
2 голосов
/ 10 октября 2019

Вероятно, глупый вопрос, но как лучше всего обрабатывать переменную, которая создается оператором if в PHP?

Итак, приведенный ниже код будет работать, но если я изменю число с 10 на 30, тогдаЕсли оператор будет ложным, а $ class будет неопределенным, что приведет к ошибке.

Каков наилучший способ справиться с этим? Должен ли я просто определить $ class как null перед моим оператором if?

if( 10 < 20 ) {
  $class = 'less';
}

echo '<div class="number ' . $class . '">10</div>';

Ответы [ 5 ]

2 голосов
/ 10 октября 2019

Вы можете использовать троичную операцию здесь в сочетании с empty():

if( 10 < 20 ) {
    $class = 'less';
}

echo '<div class="number ' . (!empty($class) ? $class : '') . '">10</div>';

Обратите внимание, что, прежде чем использовать его, желательно проверить, существует ли что-то, ваш текущий код в порядке. PHP выдаст уведомление об использовании неопределенного индекса, но это не будет фатальной ошибкой.

Тем не менее, я все равно рекомендую проверять использование empty() - гораздо лучше иметь идеальный код, который PHP не будет выдаватьошибки / уведомления для.

2 голосов
/ 10 октября 2019

Handle Like this. Да Вы должны определить $class как ноль перед оператором if ..

$class = "";
if( 10 < 20 ) {
    $class = 'less';
  }

  echo '<div class="number ' . $class . '">10</div>';
1 голос
/ 10 октября 2019

Вы можете использовать оператор объединения нулей с круглыми скобками.

if( 10 < 20 ) {
  $class = 'less';
}

echo '<div class="number ' . ($class ?? '') . '">10</div>';

$class ?? '' - это краткий синтаксис для (isset($class) ? $class : '')

0 голосов
/ 10 октября 2019

Вы можете использовать функцию PHP isset , чтобы определить, объявлена ​​ли переменная и отличается ли она от NULL :

echo '<div class="number ' . isset($class) ? $class : '' . '">10</div>';
0 голосов
/ 10 октября 2019

Это не связано ни с PHP, ни с if в одиночку. Когда язык позволяет создавать переменные «на лету», это просто дополнительная функция, а не то, что позаботится об общей логике.

Создавайте свои переменные всегда на том уровне, на котором вы их используете. В случае сомнений, сделайте это изначально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...