0
<?php
function dosomething(){
    echo "do\n";
}

$temp="test".dosomething();
echo $temp;
?>

预期结果:testdo

但实际结果是:做

测试%

我知道如何更改代码以获得预期的结果。但我怀疑的是为什么代码会打印出这样的结果。有人可以解释一下吗?谢谢!

4

5 回答 5

3

dosomething在屏幕上回响。由于首先运行,因此会打印“do\n”。

dosomething也不返回任何东西,所以第二个回声相当于echo "test";

为了使用调用的结果,您应该返回它:

function dosomething(){
    return "do\n";
}

它将按照您的预期运行。

澄清。为了弄清楚什么$temp是必须首先运行的函数,它首先打印出“do\n”。

于 2013-10-16T08:36:39.847 回答
1

使用回报。

function dosomething(){
return "do\n"; }
于 2013-10-16T08:36:38.523 回答
1

使用 return 语句而不是 echo

function dosomething(){
    return "do\n";
}
于 2013-10-16T08:36:51.690 回答
0

我不知道为什么人们投票反对。他们的答案是正确的。

http://codepad.org/nagGXY99

于 2013-10-16T08:40:36.743 回答
0

试试这个:

在调用函数中使用 return。这样做你会得到调用函数的字符串。所以函数被字符串替换,然后 2 个字符串将 con cat。

-

谢谢

于 2013-10-16T08:47:44.920 回答