if语句中的php返回语句

Posted

技术标签:

【中文标题】if语句中的php返回语句【英文标题】:php return statement in if statement 【发布时间】:2015-07-28 11:20:48 【问题描述】:

也许我的问题有点初级或愚蠢,但我需要验证这一点。

我有一个 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 中的其余代码 if "$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;
    

谢谢!

【问题讨论】:

两者都可以。如果你想以某种方式依赖它,你可以返回一些东西,例如if (functionA($arg1,$arg2 == )) 如果您有任何需要,请发送至return true for on,因为true == 1 【参考方案1】:

您的 functionA 可以完美运行,但为了便于阅读,最好采用这种格式:

...
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!

...

不同的是,你立即取消不想要的“ON”条件,并尽快退出该功能。然后该函数的其余部分将处理您想做的任何事情,而不是坐在 if 语句块内。

【讨论】:

【参考方案2】:

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 非常有用。

【讨论】:

【参考方案3】:

函数将在 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'];
?>

谢谢

【讨论】:

【参考方案4】:

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

如果您有一个测试某些内容的代码构造,并且您想知道测试结果,那么您可以使用return false 让其余代码知道测试失败。

【讨论】:

以上是关于if语句中的php返回语句的主要内容,如果未能解决你的问题,请参考以下文章

PHP Doctrine 1.2 SET 语句中的条件 IF 语句

如何在php中的if语句中添加多个条件

PHP:从子类方法评估父类中的if语句

此 IF 语句中的语句如何工作?

if语句表达式中的php数组取消引用[重复]

PHP中的流程控制