Я хочу отображать только определенную часть, если переменная равна 1.

Я пробовал это, но не работает:

<?php
    echo 'Hi John' .
    if($lnameCheck == 1) {
        ' Doe'
    }
    . '. How is it going?';
?>

Возможно ли это, без этого:

<?php
    if($lnameCheck == 0) {
        echo 'Hi John Doe. How is it going?';
    }
    if($lnameCheck == 1) {
        echo 'Hi John. How is it going?';
    }
?>

Я не хочу этого делать, потому что это действительно плохой код, особенно когда я начинаю добавлять более одной переменной.

php
-1
Tobias H. 3 Июл 2021 в 22:42

3 ответа

Лучший ответ

Если вам нужен более короткий рабочий код, вы можете попробовать это.

<?php  echo 'Hi John' . ($lnameCheck ? ' Doe' : '') . '. How is it going?'; ?>
1
hakre 3 Июл 2021 в 22:56

Предполагая, что вы просто хотите добавить что-то к имени (в данном случае), может быть лучше иметь переменную со значением (John) и добавить к ней вторую часть, если тест пройдет успешно. Затем вы выводите результирующую переменную в предложении ...

$name = "John";
if($lnameCheck == 0) {
    $name .= " Doe";
}
echo "Hi $name. How is it going?";
1
Nigel Ren 3 Июл 2021 в 19:46

Вы также можете использовать ассоциативный массив для хранения значения переменной, например

<?php
$lnameCheck = 1; // for example


$posName = [1 => " Doe", 2 => "Whatever"]; // Or just array
$name_var = array_key_exists($lnameCheck, $posName) ? $posName[$lnameCheck] : "";
echo "Hi John$name_var. How is it going?";
?>
0
Avezan 3 Июл 2021 в 20:17