我对return语句感到困惑,为什么我们需要在函数结尾使用return,例如
function test($a){blah;
blahh ;
blahhh;
blahhhhh;
return;}
这里有什么用途?当所有语句执行时,函数自动终止,我认为这里没有返回,但http://www.w3resource.com/php/statement/return.php的这张图片让我感到困惑
所以 有人可以解释使用return(当我们没有返回任何值时)。
答案 0 :(得分:2)
这取决于你想要实现的目标。
如果你在几个地方写
echo
,你的代码就会变得混乱。通常,返回值的函数也更通用,因为调用者可以决定是否进一步操作该值或立即打印它。
我建议坚持惯例并使用return
作为功能。
您应该查看GuardClause。
示例:强>
function test() {
return 10;
}
$a = test(); // $a stores the value 10
echo $a; // Prints 10
echo $a + 5; // We may want to manipulate the value returned by the function. So, it prints 15.
如需进一步参考,请查看What is the difference between PHP echo and PHP return in plain English?
答案 1 :(得分:1)
在这种情况下:你没有。
return
突破了该函数,但由于它是该函数中的最后一个语句,所以如果没有该语句,你就会打破它。
return
将其参数传递给调用者,但由于它没有参数,因此没有任何内容可以传递。
所以它什么也没做。
不要以为你偶然遇到的每一段代码都有一些瑕疵。它可能会从代码的早期版本中遗留下来,而其他东西(赋予它意义)已被删除。它可能是由某人的货物结果写的。它可能是未来发展的占位符。
答案 2 :(得分:1)
如果您希望函数返回值,那么它很有用。
即
Function FavouritePie($who) {
switch($who) {
case 'John':
return 'apple';
case 'Peter':
return 'Rhubarb';
}
}
所以,考虑以下因素:
$WhatPie = FavouritePie('John');
echo $WhatPie;
会给
apple
以一种非常简单的形式,如果你想要一个函数返回一些东西,即处理它并传回一些东西,那么它很有用。没有回报,你只是在执行一个死路的功能。
进一步阅读: http://php.net/manual/en/function.return.php
http://php.net/manual/en/functions.returning-values.php
要添加一些特定于答案的进一步上下文,如果问题归结为"我是否需要为此添加return
,在函数结束时,那么答案没有。但这并不意味着正确的答案始终是遗漏您的return
。
这取决于您对$a
的要求。
如果您在函数中echo $a
,该函数将在调用后立即吐出$a
。如果您return $a
,假设您将test
的调用设置为变量(即$something = $test('foo')
),那么您可以稍后再使用它。
答案 3 :(得分:1)
"返回"当您打算从其他代码调用此函数时,这很重要,它可以帮助您:
当代码作为样本简单时,它可能毫无用处,让它变得更复杂。
function test($a){
if(file_exists($a)){
if(is_file($a)){
return $a." IS A FILE\n";
} else if(is_dir($a)) {
return $a." IS A DIR\n";
} else {
return $a." EXISTS, BUT I DONT KNOW WHAT IT IS\n"
}
} else {
return $a." NOT EXISTS\n";
}
return 0;
}
$filecheck = test("/abc/def.txt");
if($filecheck){
echo $filecheck;
} else {
echo "unknown error";
}
上面显示了如何返回值,并进行一些基本处理。 在函数中实现返回总是很好,因此您甚至可以为函数指定错误代码以供参考。
根据您的示例,我将稍微修改如下:
function test($a){
blah;
blahh;
blahhh;
blahhhhh;
return 1;
}
所以我知道代码正在运行到最后一行。 否则该功能只是默默地完成。