7
<?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 函数中使用它们时是否需要退出和返回?在这种情况下,如果有任何评估为假,我想在那里结束并退出。

4

1 回答 1

32

不,它不需要。当您从函数返回时,之后的任何代码都不会执行。如果它确实执行了,那么你可能会停在那里,也不会回到调用函数。那exit应该去

根据PHP 手册

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

然而,退出,根据 PHP 手册

终止脚本的执行。

所以如果你的出口真的在执行,它会在那里停止所有的执行

编辑

只需举一个小例子来演示exit的作用。假设你有一个函数,你想简单地显示它的返回值。然后试试这个

<?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>";


?>
于 2013-05-21T05:39:44.827 回答