Как написать условие?
Есть часть содержимого php
<span class="tickets_span"> Количество пересадок: <?=$data['transfers'] ?></span>
Как написать условие в PHP:
Если <?=$data['transfers'] ?> равен нулю, то показать "Без пересадок",
если <?=$data['transfers'] ?> больше нуля, то показать <?=$data['transfers'] ?>
Спасибо
Ответы (3 шт):
Вот такой открывающий тэг <?= не только обрамляет php-код, но и сразу же запускает вывод в HTML. Чтобы написать условие в if Вам нужен обычный открывающий тэг <?php:
<?php if($data['transfers'] == 0) echo "Без пересадок"; else echo $data['transfers']; ?>
Если Вам не нравятся лишние языковые конструкции echo, то можно продолжать использовать <?= для вывода, а в обычных обрамляющих php-код тэгах записать только условие. Вот пример (используется альтернативный синтаксис для if):
<?php if($data['transfers'] == 0): ?> Без пересадок <?php else: ?> <?= $data['transfers'] ?> <?php endif; ?>
На мой взгляд, echo смотрятся куда лучше, чем множество открывающих/закрывающих тэгов, когда надо выводить только динамическое содержимое. Но тут есть и статическое содержимое. Поэтому тут дело вкуса.
Также можно использовать тернарный оператор вместо if:
<?= ($data['transfers'] == 0)? "Без пересадок" : $data['transfers'] ?>
if ($data['transfers'] == 0) {
echo "Без пересадок";
}elseif ($data['transfers'] > 0) {
echo $data['transfers'];
}
Можете написать в одну функцию и использовать в любом месте:
<?php
function getTransfer($transfer){
if ($transfer === 0) {$transfer = "Без пересадок";} else{
$transfer = $transfer;
}
return $transfer;
}
?>
<span class="tickets_span"> Количество пересадок: <?php echo getTransfer($data['transfers']); ?></span>