为什么“回声'2'” .打印(2) + 3“ 打印 521?[已关闭]

php
2022-08-30 22:00:03

谁能说出下面表达的内部过程?

<?php echo '2' . print(2) + 3; ?>
// outputs 521

答案 1

print不是函数,因此括号并不像您想象的那样工作。它获取表达式 () 的值并输出它。它返回自身,该自身被连接到 ,然后被 ed。(2) + 351'2'echo


答案 2

print(2) + 3将产生 5(它与 或 相同)。由于在这种情况下,print 实际上不是一个函数,因此括号大多是无意义的。最后要注意的是,在 .print (2 + 3)print 2+3printecho

到目前为止,输出为:5

echo '2' . print将产生 21,因为打印始终返回 1

现在的输出是:'521'


推荐