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 будет заполняться намного больше!

Есть два различия между 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 покажет значение, тип, параметры … переменной.

http://us2.php.net/echo

 <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 не имеет отступов.

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