2016-09-29 99 views
-2

我感到困惑return语句任何价值,为什么我们需要使用的功能结束的回报,例如为什么我们使用的功能到底回报,而不是返回

function test($a){blah; 
        blahh ; 
        blahhh; 
        blahhhhh; 
        return;} 

什么用的回报这里?功能自动终止时,所有的语句执行,我想也没有用回到这里的,但是从http://www.w3resource.com/php/statement/return.php这张照片让我迷惑enter image description here

所以 能有人请解释使用return(当我们不返回任何值) 。

+2

上面的返回只是打破了函数 – Neat

+0

根据您的设计和函数的作用,您不希望“回显”结果。 –

+1

@ʰᵈˑ-return语句在* echo语句之后*,所以它不会阻止该语句。 – Quentin

回答

1

在这种情况下:你不这样做。

return突破了函数,但由于它是该函数中的最后一个语句,所以无论如何你都会在没有声明的情况下跳出它。

return 将其参数传回给调用者,但由于它没有参数,因此没有任何可传递的参数。

所以它什么也没做。


不要认为你偶然发现的每一段代码都有一个瑕疵。它可能会从代码的早期版本中遗留下来,而其他的东西(赋予其含义)已被删除。它可能是由某人的货物提供的。它可能是未来发展的占位符。

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')),则可以稍后使用它。

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. 知道该功能是否正常工作。
  2. 从函数中获取值。
  3. 确保返回后不执行其他代码。

当代码很简单时,它可能没有用处,让我们使它更复杂。

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; 
} 

所以我知道的代码运行到最后一行。否则该函数只是静静地完成。

相关问题