命令echo不返回任何内容。但打印返回1.始终。 返回1的实际用途是什么?当然可以在表达式中使用它,但如果总是如此则表示无用,并导致使用更多码?
<?php
unset($empty);
if(print ($empty)){
echo "Yep sure thing. Print strikes again with a ", "1.";
}
?>
它不应该总是返回与下面相同的结果,那么重点是什么呢?
<?php
print ($empty);
echo "Yep sure thing. Print strikes again with a ", "1.";
?>
这个问题是关于返回1而不是“Echo允许回显多个字符串,用逗号分隔,而打印不是”等等。
答案 0 :(得分:3)
print
总是在现实世界中返回一个。如果您尝试执行Inception,则可以设计始终返回零的print
函数。这样,您可以查看您是在梦中还是现实世界。
但实际上,使用print
的返回值与使用true
相同。无限循环,打印调试信息等都是非常引人注目的用途,但它们是糟糕的设计(接近疯狂),应该避免使用。
答案 1 :(得分:2)
由于结果总是真实的,你可以用这样的表达式将它链接在一起:
if (print('debug stuff') && $a == 1) {
// do stuff
} elseif (print('debug another') && $a > 56) {
// do stuff
}
在评估条件时,它将像一种不影响结果的调试一样工作。
或者,在无限循环中使用:
while(print('still in the loop')) {
// do something very exciting
}
虽然这些是echo
无法做到的事情(它会导致解析错误),但它的用处基本上只限于测试和调试阶段而不是运作阶段。
答案 2 :(得分:1)
我看不到任何有用的表达方式。但我可以创造一些奇怪的东西:
对于循环短打印机:
for($i=0; $i<100; $i+=print($i.')<br/>')) ;
while循环打印计数器:
//$result is some db result
$rowCounter = 0;
while($row = $result->fetchAssoc()) {
$rowCounter += print($row['column']);
}
答案 3 :(得分:0)
**echo**
No return value
Outputs one or more strings separated by commas
e.g. echo "String 1", "String 2"
**print**
Returns 1, so it can be used in an expression
Outputs only a single string
e.g。 if((print“foo”)&amp;&amp;(print“bar”))