2016-08-10 3 views
1

Все, что я хочу сделать, это выставить переменную PHP внутри тега <li>. Обратитесь к приведенному ниже коду. Каков правильный формат? Мой не работает.Как эхо PHP и HTML в одной строке?

$row['cat_title']; 

echo "<li> {$cat_title} </li>"; 
+0

Используете ли вы механизм шаблонов (например, smarty)? – GreensterRox

+1

Templating - это способ пойти IMO, в дополнение к ответам на основе echo, вы также можете использовать '(s) printf ('

  • % s
  • ', $ row ['cat_title']);'. Ваше использование '$ row' меня беспокоит: оно указывает на ваше смешение в разметке (шаблон/просмотр связанного кода) с кодом, связанным с БД. Это считается плохой практикой –

    +1

    PHP ** является ** шаблоном двигателя. Включение целых сторонних шаблонов для выполнения простой конкатенации строк/интерполяции смешно. Если это в шаблоне/представлении, используйте '

  • ', в противном случае используйте '
  • '. $ cat_title. '
  • ' '. – meagar

    ответ

    1
    echo '<li>'.$var.'</li>'; 
    

    ИЛИ

    echo "<li>$var</li>"; 
    

    ИЛИ

    <li><?=$var?></li> 
    
    +2

    @DuaneLortie Пожалуйста, прекратите распространение дезинформация. Этот тег будет работать во всех * современных версиях PHP с PHP 5.4, независимо от того, включены или выключены короткие теги. ' meagar

    +2

    @Robert Для всех современных версий php ' meagar

    +0

    Это зависит от версии php клиентов. – McStuffins

    1

    Вы должны ссылаться на правильную переменную. Но ты на правильном пути.

    echo "<li> {$row['cat_title']} </li>"; 
    
    -1

    Другой вариант:

    <li><?php echo $row['cat_title']; ?></li> 
    
    +0

    Тому, кто его ниспровергал: скажите, пожалуйста, почему в мире это неправильно – CarlosCarucce

    -1

    Любой из этих методов будет работать ...

    // use singlequotes and periods like this.... 
    echo '<li>'. $row['cat_title'] .'</li>'; 
    

    ИЛИ

    // use doublequotes like this... 
    echo "<li> $row['cat_title'] </li>"; 
    
    +0

    Метод 1 работает, но метод 2 содержит синтаксическую ошибку. –

    4

    Если вам нужно вывести значение а конкретный ключ массива (например, $row['cat_title']) в HTML, у вас есть немало вариантов.

    Вы можете использовать concatenation operator (.):

    echo '<li>' . $row['cat_title'] . '</li>'; 
    

    Вы можете использовать переменные интерполяции с simple string parsing (обратите внимание, что в этом синтаксисе, котировки вокруг ключа массива должен быть опущен):

    echo "<li>$row[cat_title]</li>"; 
    

    Вы можете использовать переменную интерполяцию с complex string parsing (используя {}), что на самом деле здесь не обязательно, но полезно для более интерполирования более сложных выражений. С помощью этого синтаксиса, котировки вокруг массива ключевых должны быть включены .:

    echo "<li>{$row['cat_title']}</li>"; 
    

    Вы можете вывести простой HTML и использовать echo ярлык синтаксис <?= для вывода значения (только это сделать, если вы уже выводить HTML, не, если вы в настоящее время в <?php тег, который будет синтаксической ошибкой.): ​​

    <li><?= $row['cat_title'] ?></li> 
    

    вы можете использовать printf (благодаря комментарий Элиас Ван Ootegem за напоминание мне об этом, я должен ч аве включил его для начала). sprintf может использоваться, если вы хотите сохранить результат вместо переменной; printf будет выводить его сразу:

    printf('<li>%s</li>', $row['cat_title']); 
    

    Первый аргумент printf является строка формата, где %s является строкой conversion specification, которая будет принимать значение $row['cat_title'], когда printf выполняется.

    Есть и другие способы, но они являются наиболее распространенными.

    +0

    Вы забыли лучший вариант: '

  • '. Существует ** нет причины ** использовать ' meagar

    +0

    @meagar Вы правы. Написание ответов, чтобы избежать «этого не работало на моем сервере PHP 5.2», отклики - это ленивая привычка, которую мне нужно сломать. Я полагаю, что соответствующий ответ на эти типы ответов не «тогда вам придется использовать«

    +0

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

    0

    Если файл в основном PHP в файле, то:

    <?php echo "<li>" . $row['cat_title'] . "</li>"; ?> 
    

    Или converseely, если его главным образом HTML в файле, то:

    <li><?php echo $row['cat_title']; ?></li> 
    

    Его звучит для меня, что его, скорее всего, второй вариант - это то, что вы ищете.

    Смежные вопросы