php: echo "", print (), printf () - PullRequest
       19

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

28 голосов
/ 01 октября 2009

Есть ли лучший способ вывода данных на HTML-страницу с помощью PHP?

Если мне захочется сделать div с некоторой переменной в php, я напишу что-то подобное

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

или

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

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

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

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

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

Ответы [ 8 ]

29 голосов
/ 01 октября 2009

В PHP есть 2 различия между echo и print:

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

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

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

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

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

7 голосов
/ 01 октября 2009

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

$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
2 голосов
/ 01 октября 2009

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

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

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

1 голос
/ 01 октября 2009

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

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

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

1 голос
/ 01 октября 2009

http://us2.php.net/echo

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

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

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

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

<?=$var?>

Но некоторые находят это грязным.

0 голосов
/ 13 июня 2010

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

0 голосов
/ 01 октября 2009

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

<div><i><value of <code>$var</code>></i><div>

, а второе приведет к

'<div>'.<i><value of <code>$var</code>></i>.'<div>'

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

См. Также https://stackoverflow.com/questions/1462581#1462636 и https://stackoverflow.com/questions/1163473#1163793.

0 голосов
/ 01 октября 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...