if语句中的php return语句

时间:2015-05-16 16:25:46

标签: php if-statement return

也许我的问题在某种程度上是基本的或愚蠢的,但我需要验证这一点。

我有一个php函数“functionA”,它在for循环中被重复调用:

...
for($j=0; $j<$n_samples;$j++) {
    if($type=='triband') {
        functionA($arg1,$arg2);                 
    }
}
...

和我的功能A:

...
functionA($arg1,$arg2) {
    $wide_avg_txon = substr($bit_sequence,0,1);
    if($wide_avg_txon==0)
    {
        echo " ---> is OFF...<br />";
    }
    else
    {
        echo " ---> is ON...<br />";
        // if is ON then skip execution of code inside the function
        return;
    }

    // DO SOME STUFF!
}
...

所以我不想在functionA中执行其余的代码,如果“$ wide_avg_txon == 1”,我只想继续为下一次迭代执行for循环!

以上代码是否有效?有什么区别:'return'和'return false'? 'return false'也会起作用:

...
if($wide_avg_txon==0)
    {
        echo " ---> is OFF...<br />";
    }
    else
    {
        echo " ---> is ON...<br />";
        // if is ON then skip execution of code inside the function
        return false;
    }

谢谢!

4 个答案:

答案 0 :(得分:3)

您的return将起作用,因为您对返回的结果不感兴趣。你只想继续for循环。

如果您的代码构造经过了测试,并且您想知道测试结果,那么您可以使用return false让其余代码知道测试失败。

答案 1 :(得分:1)

您的功能A将完美运行,但为了便于阅读,最好以这种方式进行格式化:

...
function functionA($arg1, $arg2) {

    $wide_avg_txon = substr($bit_sequence,0,1);

    // if is ON then skip execution of code inside this function
    if ($wide_avg_txon != 0) {
        echo " ---> is ON...<br />";
        return;
    }

    echo " ---> is OFF...<br />";

    // DO SOME STUFF!
}
...

不同之处在于您立即取消了您不想要的“开启”条件,并尽快退出该功能。然后函数的其余部分正在处理你想要做的事情,而不是坐在if语句块中。

答案 2 :(得分:0)

函数将在return语句后停止。你可以在这里阅读更多信息: http://php.net/manual/tr/function.return.php

例如,您可以执行以下操作来测试此内容:

<?php
$_SESSION['a'] = "Naber";
function a(){
        return;
        unset($_SESSION['a']);
}
a(); // Let see that is session unset?
echo $_SESSION['a'];
?>

由于

答案 3 :(得分:0)

return false返回false,一个布尔值。 return将返回NULL。也不会执行任何后续代码。

因此,为了扩展RST的答案,两个回报都不会满足if条件:

if(functionA($arg1,$arg2))
     echo'foo';
else
     echo'bar';

bar会得到回应。

这可能有用,如果你有:

$return=functionA($arg1,$arg2);
if($return===NULL)
    echo'Nothing happened';
elseif($return===false)
    echo'Something happened and it was false';
else
    echo'Something happened and it was true';

NULL非常实用。