php:echo“”,print(),printf()

时间:2009-10-01 15:54:33

标签: php syntax

有没有更好的方法用PHP输出数据到html页面?

如果我想用php中的一些var创建一个div,我会写类似的东西

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

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

这样做的正确方法是什么?

或者更好的方法,填写$tempvar并打印一次?那样:

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

事实上,在现实生活中,var将会充满更多!

8 个答案:

答案 0 :(得分:29)

PHP中echoprint之间存在2个差异:

  • print返回一个值。它总是返回1.

  • echo可以使用逗号分隔的参数列表进行输出。

始终返回1似乎并不特别有用。并且可以使用多个调用或字符串连接来模拟以逗号分隔的参数列表。所以echoprint之间的选择几乎归结为风格。我见过的大多数PHP代码都使用echo

printf()是c printf()的直接模拟。如果您对这个习惯感到满意,可以使用printf()。但是,年轻一代的很多人发现printf()的特殊字符语法比同等的echo代码更不易读。

echoprintprintf之间的性能可能存在差异,但我不会因为数据库驱动的Web应用程序(PHP的典型域名)而过于依赖它们),打印到客户端的字符串几乎肯定不是你的瓶颈。最重要的是,3个中的任何一个都将完成工作,而另一个并不比另一个好。这只是一种风格问题。

答案 1 :(得分:7)

你甚至可以写

$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 :(得分:2)

试试这个你会喜欢格式正确的信息量:

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

好的,我解释一下:设置一个“代码”html格式,var_dump显示变量的值,类型,参数....

答案 3 :(得分:1)

http://us2.php.net/echo

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

或者,如果您没有打开短标签,则可能需要

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

如果您启用了short_open_tag选项,则可以执行

<?=$var?>

但是有些人觉得很乱。

答案 4 :(得分:1)

您还可以使用以下语法:

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

确保ENDOFTEXT 没有缩进

答案 5 :(得分:0)

你可以这样做:

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

关于PHP的一个好处是你可以将它插入到常规HTML中,并轻松完成上述操作。我总是在PHP中使用echo。不确定它是否是“正确的”方式,但它是最简单的方法。

答案 6 :(得分:0)

虽然echoprint几乎相等,但您使用的是不同的值。您的第一个值将导致

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

而第二个将导致

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

但其余部分在语义上几乎相同。由于echoprint不是真正的函数,而是特殊的语言结构,因此第一个示例中的括号只是包装单个字符串值而不是参数列表。

另请参阅https://stackoverflow.com/questions/1462581#1462636https://stackoverflow.com/questions/1163473#1163793

答案 7 :(得分:0)

我已经读过某个地方,回声打印速度更快。但它的性能提升太小了。