3
我不理解这个?quirk?的PHP的所有...因为我正在查看其他人的代码,我看到有些人完全忽略了else语句,只是放置一个“返回false”;声明。PHP if/else返回和回显之间的区别?
看来这个技巧只适用于return语句,正如你在下面的例子中看到的,它在回显文本时不起作用。
这很奇怪,以案例二为例,当然这个函数是继续读取的,所以函数会在if语句里面返回“true”,因为条件符合了,但是当它离开if/else语句时它应该会返回返回FALSE,因为没有ELSE语句。这不会发生,并且该函数仍然返回true。
我无法理解这个,所以希望有人能解释一下吗?
// Case 1
function checkNumber1($number) {
if ($number === 10) {
return true;
} else {
return false;
}
}
$number = 10;
var_dump(checkNumber1($number)); // Returns true
// Case 2
function checkNumber2($number) {
if ($number === 10) {
return true;
}
return false;
}
$number = 10;
echo '<br>';
var_dump(checkNumber2($number)); // Also returns true??
// Case 3
function checkNumber3($number) {
if ($number === 10) {
echo 'true' . '<br>';
} else {
echo 'false' . '<br>';
}
}
$number = 10;
echo '<br>';
checkNumber3($number); // Returns true
// Case 4
function checkNumber4($number) {
if ($number === 10) {
echo 'true' . '<br>';
}
echo 'false' . '<br>';
}
$number = 10;
checkNumber4($number); // Returns true and then false???
在情况2中,if语句中的'return true'退出该函数。如果if语句中的'echo'true''不会退出函数,那么'echo'false''也会执行。 – jszobody
我认为这里很重要的一个重要区别是'return'结束了函数!,而'echo'没有。所以case 1)'10 == 10' - > If语句 - >返回true - >函数结束case 2)'10 == 10' - > if语句 - >返回true - >函数结束(注意:由于return结束函数,它将不会执行进一步)情况3)'10 == 10' - >如果语句 - >回声真正 - >功能命中结束并停止案例4)'10 == 10' - >如果语句 - >回声真实 - >函数进一步执行 - > echo false - >函数结束 – Rizier123
面包屑你们很快,所以返回退出函数,辉煌,现在我明白了!谢谢! –