为什么我可以通过调用echo
一次来输出hello Sam
来编写此代码?
这是PHP代码:
<?php
function moo() {
echo 'Sam';
}
echo 'hello ' . moo();
?>
输出为Samhello
解析是R to L
。我可以通过将echo
写在两个单独的行上来实现所需的输出:
<?php
function moo() {
echo 'Sam';
}
echo 'hello ';
echo moo();
?>
但是有没有办法在一行中做到这一点?
答案 0 :(得分:5)
不要使用函数echo
,只需返回要打印的字符串即可。然后让调用者决定如何处理它 - 在这种情况下,function moo() {
return 'Sam';
}
echo 'hello ' . moo();
它:
echo number_format(get_something_from_database_which_is_a_number());
编辑:添加解释(不是答案的作者)而不是留下评论。
“return”和内联concat之间的区别在于,要使初始函数(echo语句)起作用,它需要在输出初始函数之前运行函数(在代码中,它是moo())回声。
这与以下示例没有什么不同:
get_something_from_database_which_is_a_number()
您希望函数number_format()
返回return
函数之前的值,然后很好地格式化它。
如果使用return
语句,函数本身将运行,但随后{{1}}将字符串返回到初始函数调用(在您的情况下为echo)语句。