Подтвердить что ты не робот

Php: echo "", print(), printf()

Есть ли лучший способ вывода данных на страницу html с PHP?

Если мне нравится делать div с некоторым var в php, я напишу что-то вроде этого

print ('<div>'.$var.'</div>');

или

echo "'<div>'.$var.'</div>'";

Каков правильный способ сделать это?

Или лучше, заполните $tempvar и распечатайте его один раз? например:

$tempvar = '<div>'.$var.'</div>'
print ($tempvar);

Фактически, в реальной жизни var будет заполняться намного больше!

4b9b3361

Ответ 1

В PHP существует 2 отличия между echo и print:

  • print возвращает значение. Он всегда возвращает 1.

  • echo может принимать список аргументов с разделителями-запятыми.

Всегда возвращение 1 не кажется особенно полезным. И список аргументов с разделителями-запятыми можно моделировать с помощью нескольких вызовов или конкатенации строк. Поэтому выбор между echo и print в значительной степени сводится к стилю. Большинство PHP-кода, которые я видел, используют echo.

printf() является прямым аналогом c printf(). Если вам удобно в идиоме, вы можете использовать printf(). Однако многие люди молодого поколения считают printf() специальный синтаксис символов менее понятным, чем эквивалентный код echo.

Вероятно, существуют различия в производительности между echo, print и printf, но я не стал бы их слишком зависеть от них, поскольку в веб-приложении, управляемом базой данных (типичный домен PHP), печатающие строки для клиент почти наверняка не является вашим узким местом. Суть в том, что любая из трех будет выполнять свою работу, а другая не лучше другой. Это просто вопрос стиля.

Ответ 2

вы даже можете написать

$var = "hello";

echo "Some Text $var some other text";
// output:
// Some Text hello some other text

или

print("Some Text $var some other text");
// output:
// Some Text hello some other text

не имеет большого значения. Это работает только с двойными кавычками. С одинарными кавычками это не так. Пример:

$var = "hello";

echo 'Some Text $var some other text'; // Note the single quotes!
// output:
// Some Text $var some other text

или

print('Some Text $var some other text'); // Note the single quotes!
// output:
// Some Text $var some other text

Ответ 3

Просто попробуй, тебе понравится хорошо сформированное количество информации:

<?php
  echo '<pre>';
  var_dump($your_var);
  echo '</pre>';
?>

ОК, я объясню: установите "html-формат кода" и var_dump покажите значение, тип, параметры... переменной.

Ответ 4

http://us2.php.net/echo

<div><? print($var); ?></div>

Или, если у вас нет коротких тегов, вам может понадобиться

<div><?php print($var); ?></div>

если у вас включен параметр short_open_tag, вы можете сделать

<?=$var?>

Но некоторые считают это грязным.

Ответ 5

Вы можете сделать что-то вроде этого:

<div><?php echo $var; ?></div>

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

Ответ 6

Пока echo и print почти равны, вы используете разные значения. Ваше первое значение приведет к

<div><value of $var><div>

в то время как вторая приведет к

'<div>'.<value of $var>.'<div>'

Но остальные семантически почти равны. Поскольку echo и print не являются реальными функциями, а специальными языковыми конструкциями, скобки в вашем первом примере - это просто одно значение строки, а не список параметров.

См. также fooobar.com/questions/197006/... и fooobar.com/questions/197011/....

Ответ 7

Вы также можете использовать следующий синтаксис:

    echo <<<ENDOFTEXT
        <div>
            $var
        </div>
ENDOFTEXT;

Просто убедитесь, что ENDOFTEXT не имеет отступов.

Ответ 8

Я где-то читал, что эхо быстрее, чем печать. Но его слишком мало производительности.