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 будет заполняться намного больше!
Ответы
Ответ 1
В PHP существует 2 отличия между echo
и print
:
Всегда возвращение 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
Я где-то читал, что эхо быстрее, чем печать. Но его слишком мало производительности.