Php print()总是返回1,有实际用途吗?

Php print()总是返回1,有实际用途吗?,php,Php,命令echo不返回任何内容。但print返回1。总是返回1的实际用途是什么?当然可以在表达式中使用,但是如果表达式始终为真,并导致使用更多代码,那么该表达式不是毫无用处吗 <?php unset($empty); if(print ($empty)){ echo "Yep sure thing. Print strikes again with a ", "1."; } ?> 它不应该总是返回与下面相同的结果吗,那么有什么意义呢 <?php print ($emp

命令echo不返回任何内容。但print返回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允许回显多个由逗号分隔的字符串,而print不允许”等等。因为结果总是真实的,所以可以将其链接在一个表达式中,如下所示:

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
完成的事情(它会导致解析错误),但它的用途基本上仅限于测试和调试阶段,而不是操作阶段

**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、 如果((打印“foo”)和(&(打印“bar”)

我看不到任何有用的表达式。但我可以创造一些奇怪的:

对于短循环打印机:

for($i=0; $i<100; $i+=print($i.')<br/>')) ;

print
在现实世界中总是返回一个。如果您试图执行Inception,您可以设计一个总是返回零的
print
函数。这样,你就可以查看自己是在梦中还是在现实世界中


然而,实际上,使用
print
的返回值与简单地使用
true
是一样的。无限while循环、打印调试信息等都是非常有吸引力的用途,但它们是糟糕的设计(近乎疯狂),应该避免使用。

谢谢。。。这是很明显的。你甚至可以在那里打印一些循环变量。哈哈,我不知道这个答案是否被选为关于如何编写《盗梦空间》的建议,或者是一个实用的函数,这完全不是一个好主意!但我还是喜欢这些例子。尤其是for循环。通常我会分两排做一个。我想知道使用它是否明智,或者使用其他代码获得同样的结果是否更明智。
//$result is some db result
$rowCounter = 0;
while($row = $result->fetchAssoc()) {
    $rowCounter += print($row['column']);
}