当前位置:  开发笔记 > 编程语言 > 正文

如何在PHP中回显和打印不同?

如何解决《如何在PHP中回显和打印不同?》经验,为你挑选了5个好方法。

来自:http://web.archive.org/web/20090221144611/http : //faqts.com/knowledge_base/view.phtml/aid/1/fid/40

    速度.两者之间存在差异,但在速度方面,它应与您使用的哪一个无关.如果你真的想要深入了解细节,那么回声会稍快一些,因为它没有设置返回值.

    表达.print()表现得像一个功能,你可以这样做: $ret = print "Hello World"; 而且$ret1.这意味着print可以用作echo不能表达的更复杂表达式的一部分.PHP手册中的一个例子:

$b ? print "true" : print "false";

如果要在复杂表达式中使用print,它也是优先级表的一部分.它只是在优先列表的底部.只有","AND,OR和XOR较低.

    参数(S).语法是:,AND无效.这是有效的:OR; 同样的:XOR; (将括号放在这个简单的例子中是没有用的,因为没有像这样的单个术语的运算符优先级问题.)

因此,没有括号的echo可以采用多个参数,这些参数会被连接起来:

   echo  "and a ", 1, 2, 3;   // comma-separated without parentheses
   echo ("and a 123");        // just one parameter with parentheses

echo expression [, expression[, expression] ... ] 只能带一个参数:

   print ("and a 123");
   print  "and a 123";

[print`的文档](http://www.php.net/manual/en/function.print.php)明确地反驳了这个答案:"`print`实际上并不是一个真正的函数(它是一种语言结构) )". (41认同)

Echo也可用于三元运算:echo($ b)?'真假'; (36认同)

@philjohn我很确定你的陈述等于:echo(($ b)?'true':'false'); 而不是:(echo($ b))?'真假'; 因此,回声不是三元运行中实际情况的一部分. (32认同)

为了使用`echo`制作一些不可行的东西:`$ b?print"true":die("false");` (4认同)

来自w3C:PHP print语句:print也是一种语言结构, (3认同)

你可以`echo(print('test'))`但你不能`print(echo('test'))` (2认同)


seanyboy.. 74

他们是:

print只接受一个参数,而echo可以有多个参数.

print返回值(1),因此可以用作表达式.

回声稍快.


小智.. 9

要添加上面的答案,虽然print只能接受一个参数,但它允许连接多个值,即:

$count = 5;

print "This is " . $count . " values in " . $count/5 . " parameter";

这是1个参数中的5个值



1> dl__..:

来自:http://web.archive.org/web/20090221144611/http : //faqts.com/knowledge_base/view.phtml/aid/1/fid/40

    速度.两者之间存在差异,但在速度方面,它应与您使用的哪一个无关.如果你真的想要深入了解细节,那么回声会稍快一些,因为它没有设置返回值.

    表达.print()表现得像一个功能,你可以这样做: $ret = print "Hello World"; 而且$ret1.这意味着print可以用作echo不能表达的更复杂表达式的一部分.PHP手册中的一个例子:

$b ? print "true" : print "false";

如果要在复杂表达式中使用print,它也是优先级表的一部分.它只是在优先列表的底部.只有","AND,OR和XOR较低.

    参数(S).语法是:,AND无效.这是有效的:OR; 同样的:XOR; (将括号放在这个简单的例子中是没有用的,因为没有像这样的单个术语的运算符优先级问题.)

因此,没有括号的echo可以采用多个参数,这些参数会被连接起来:

   echo  "and a ", 1, 2, 3;   // comma-separated without parentheses
   echo ("and a 123");        // just one parameter with parentheses

echo expression [, expression[, expression] ... ] 只能带一个参数:

   print ("and a 123");
   print  "and a 123";


[print`的文档](http://www.php.net/manual/en/function.print.php)明确地反驳了这个答案:"`print`实际上并不是一个真正的函数(它是一种语言结构) )".
Echo也可用于三元运算:echo($ b)?'真假';
@philjohn我很确定你的陈述等于:echo(($ b)?'true':'false'); 而不是:(echo($ b))?'真假'; 因此,回声不是三元运行中实际情况的一部分.
为了使用`echo`制作一些不可行的东西:`$ b?print"true":die("false");`
来自w3C:PHP print语句:print也是一种语言结构,
你可以`echo(print('test'))`但你不能`print(echo('test'))`

2> seanyboy..:

他们是:

print只接受一个参数,而echo可以有多个参数.

print返回值(1),因此可以用作表达式.

回声稍快.



3> 小智..:

要添加上面的答案,虽然print只能接受一个参数,但它允许连接多个值,即:

$count = 5;

print "This is " . $count . " values in " . $count/5 . " parameter";

这是1个参数中的5个值



4> grilix..:

我认为print()比慢echo.

我喜欢print()只用于以下情况:

 echo 'Doing some stuff... ';
 foo() and print("ok.\n") or print("error: " . getError() . ".\n");



5> Ross..:

正如PHP.net手册所示,请阅读本讨论.

一个主要区别是echo可以输出多个参数.例如:

echo 'foo', 'bar';   // Concatenates the 2 strings
print('foo', 'bar'); // Fatal error

如果您要评估输出语句的结果(如下所示),请使用print.如果没有,请使用echo.

$res = print('test');
var_dump($res); //bool(true)


echo不接受echo('foo','bar');但是接受echo'foo','bar';
我知道这个答案是陈旧的,但不是'打印'总是返回1?此外,您何时以及为什么需要进行测试以确定打印出来的东西?这只是直接上升,不需要,永远!坦率地说,打印是没用的,应该删除,有利于ECHO!
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有