我以前使用的写法是将if语句和echo语句结合成一行,就像这样:
<?php echo ( true ) ? 'true' : 'false'; ?>
今天我修改了一个已存在的多行 if 语句,结果
echo
结束时出现在语句中,导致出现解析错误:<?php ( true ) ? echo 'true' : echo 'false'; ?>
使用
print
代替echo
就可以解决问题了。我猜这是因为print
是一个函数。更新:print
不是一个函数,它只是像一个函数一样表现,这意味着它有一个返回值。<?php ( true ) ? print 'true' : print 'false'; ?>
我不理解为什么echo无法工作。我理解上述语法只是一个常见if语句的简写,所以这也不应该起作用:
if (true) echo 'true'; else echo 'false';
但是它确实有用。谁知道呢?