PHP echo 和 PHP 用普通英语返回有什么区别?

2022-08-30 10:18:11

是的,我已经谷歌了这个问题,甚至参考了我的教科书(Don Gosselin的PHP),但我似乎真的无法理解解释。

根据我的理解:

echo = 显示函数的最终结果

return = 返回函数中的值

我应用了这两种方法,在以下函数中,我看不到使用而不是.echoreturnreturnecho

<?php
echo "<h1 style='font-family:Helvetica; color:red'>Using <em>echo</em></h1>";
function add1($x, $y){
    $total = $x + $y;
    echo $total;
}
echo "<p>2 + 2 = ", add1(2, 2), "</p>";

echo "<h1 style='font-family:Helvetica; color:red'>Using <em>return</em></h1>";
function add2($x, $y){
    $total = $x + $y;
    return $total;
}
echo "<p>2 + 2 = ", add2(2, 2), "</p>";

?>

两者都显示结果!我不明白什么?


答案 1

我将在这个问题上给出一个完全非技术性的答案。

假设有一个名叫莎莉·弗勒姆的女孩。你想知道她是否喜欢你。因此,由于你在上小学,你决定给莎莉一张纸条(用参数调用函数),问她是否喜欢你。现在你打算做的是问她这个问题,然后告诉每个人她告诉你的事情。相反,你问她,然后告诉每个人。这相当于返回(你获取信息并用它做某事)与她的回声(告诉你每个人,而你没有任何控制权)。

在你的情况下,正在发生的事情是,当莎莉从你手中夺走控制权并说“我现在要告诉人们这件事”,而不是你能够接受她的回应并做你想做的事情。然而,最终的结果是,你同时告诉别人,因为你正在呼应她已经回响但没有回来的东西(她在告诉你的班级是否喜欢你时切断了你)。echo


答案 2

请考虑以下事项:

<?php
function sayHelloLater(){
    return "Hello";
}

function sayGoodbyeNow(){
    echo "Goodbye";
}

$hello = sayHelloLater(); // "Hello" returned and stored in $hello 
$goodbye = sayGoodbyeNow(); // "Goodbye" is echo'ed and nothing is returned

echo $hello; // "Hello" is echo'ed
echo $goodbye; // nothing is echo'ed
?>

您可能希望输出为:

HelloGoodbye

实际输出为:

GoodbyeHello

原因是“再见”在调用函数后立即被回声(写入)作为输出。另一方面,“Hello”将返回到变量。实际上为空,因为 goodbye 函数不返回任何内容。$hello$goodbye


推荐