在php函数内返回后需要退出吗?

时间:2013-05-21 05:34:29

标签: php

<?php

function testEnd($x) {
    if ( ctype_digit($x) ) {
        if ( $x == 24 ) {
            return true;
            exit;
        } else {
            return false;
                 exit;
        }
    } else {
        echo 'If its not a digit, you\'ll see me.';
        return false;
        exit;
    }
}

$a = '2';

if ( testEnd($a) ) {
    echo 'This is a digit';
} else {
    echo 'No digit found';
}
?>

在php函数中使用退出时是否需要退出?在这种情况下,如果任何评估为false,我想结束并退出。

1 个答案:

答案 0 :(得分:28)

不,不需要它。从函数返回时,之后的任何代码都不会执行。如果它确实执行了,那么你可以在那里停止死亡而不是回到调用函数。 exit应该

根据PHP Manual

  

如果在函数内调用,则立即返回语句   结束当前函数的执行,并将其参数作为   函数调用的值。 return也将结束执行   一个eval()语句或脚本文件。

然而,exit,根据PHP手册

  

终止脚本的执行。

因此,如果您的出口确实正在执行,它将在那里停止所有执行

修改

举一个小例子来说明退出的作用。假设您有一个函数,并且您只想显示其返回值。然后试试这个

<?php

function test($i)
{
    if($i==5)
    {
        return "Five";
    }
    else
    {
        exit;
    }
}


echo "Start<br>";
echo "test(5) response:";
echo test(5);

echo "<br>test(4) response:";
echo test(4); 

/*No Code below this line will execute now. You wont see the following `End` message.  If you comment this line then you will see end message as well. That is because of the use of exit*/


echo "<br>End<br>";


?>