Есть ли лучший способ вывода данных на страницу html с PHP?
Если мне нравится делать div с некоторым var в php, я напишу что-то вроде этого
print ('<div>'.$var.'</div>');
или
echo "'<div>'.$var.'</div>'";
Каков правильный способ сделать это?
Или лучший способ, заполнить $tempvar
и распечатать его один раз? как это:
$tempvar = '<div>'.$var.'</div>' print ($tempvar);
На самом деле, в реальной жизни, var будет заполняться намного больше!
Есть два различия между echo
и print
в PHP:
print
возвращает значение. Он всегда возвращает 1.
echo
может принимать разделенный запятыми список аргументов для вывода.
Всегда возвращение 1 не кажется особенно полезным. И список аргументов с разделителями-запятыми можно моделировать с помощью нескольких вызовов или конкатенации строк. Таким образом, выбор между echo
и print
значительной степени сводится к стилю. Большинство PHP-кода, которые я видел, используют echo
.
printf()
является прямым аналогом printf()
c. Если вам удобно в идиоме, вы можете использовать printf()
. Однако многие люди молодого поколения считают, что синтаксис специального символа printf()
менее читабельен, чем эквивалентный echo
код.
Вероятно, существуют различия в производительности между echo
, print
и printf
, но я бы не стал их слишком зависеть, поскольку в веб-приложении, управляемом базой данных (типичный домен PHP), печать строк для клиента почти наверняка не является вашим узким местом. Суть в том, что любая из трех будет выполнять свою работу, а другая не лучше другой. Это просто вопрос стиля.
вы даже можете написать
$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
Просто попробуйте это, вам понравится хорошо сформированное количество информации:
<?php echo '<pre>'; var_dump($your_var); echo '</pre>'; ?>
ОК, я объясню: установите «код» html-формат, а var_dump покажет значение, тип, параметры … переменной.
<div><? print($var); ?></div>
Или, если у вас нет коротких тегов, вам может потребоваться
<div><?php print($var); ?></div>
если у вас включен параметр short_open_tag, вы можете сделать
<?=$var?>
Но некоторые считают это грязным.
Вы могли бы сделать что-то вроде этого:
<div><?php echo $var; ?></div>
Одна из приятных особенностей PHP заключается в том, что вы можете вставлять ее в обычный HTML-код и легко выполнять такие вещи, как выше. Я всегда использовал эхо себя в PHP. Не уверен, что это «правильный» способ, но это самый простой.
Хотя echo
и print
почти равны, вы используете разные значения. Ваше первое значение приведет к
<div> <значение $var
> <div>
а вторая приведет к
<DIV>. <значение $var
> . '<div>'
Но остальные семантически почти равны. Поскольку echo
и print
являются реальными функциями, а специальными языковыми конструкциями, скобка в вашем первом примере – это просто одно значение строки, а не список параметров.
См. Также https://stackoverflow.com/questions/1462581#1462636 и https://stackoverflow.com/questions/1163473#1163793 .
Вы также можете использовать следующий синтаксис:
echo <<<ENDOFTEXT <div> $var </div> ENDOFTEXT;
Просто убедитесь, что ENDOFTEXT не имеет отступов.
Я где-то читал, что эхо быстрее печатает. Но его слишком мало производительности.