在布尔函数中显式“返回FALSE”或“返回TRUE”
是否合适?示例A:
function check($link){
if(isset($link)){
return TRUE;
}else{
return FALSE;
}
或 例B:
function check($link){
if(isset($link)){
return TRUE;
}
默认情况下,php函数返回FALSE,如果我提到返回FALSE或忽略它作为例B
那么它是否合适?所以如果我正在检查它的真或假
if(check('eqweqw')){
echo 'its set';
}else{
echo 'its not';
}
答案 0 :(得分:2)
示例A是更好的做法,因为它明确说明了代码的用意。如果有人在阅读你的代码时不知道默认情况下返回了FALSE,他们可能会认为你的代码是错误的。
请记住:编写代码以便其他人可以轻松阅读和理解。
答案 1 :(得分:0)
来自manual:
注意:如果未提供参数,则括号必须为 省略并返回NULL。
如果您希望函数返回false
,则必须显式返回false。由于null不等于false,因此在某些情况下B将失败:
if(check('eqweqw') === false){
echo 'its not';
}else{
echo 'its set';
}
将在构造B中返回its set
答案 2 :(得分:0)
在你的例子中,最好在所有情况下都返回一个布尔值,而不仅仅是true
或者没有。
我将如何做到这一点:
function check($link){
$result = false;
if(isset($link)){
$result = true;
}
return $result;
}
尽量避免代码中有很多分数return
,并且尽可能只有一个退出点。
答案 3 :(得分:0)
您可以将其缩小为:
function check($link){
return isset($link);
}
但这听起来很像它在功能上等同于isset,所以也许你应该只使用它。至于最佳实践问题,如果PHP在isset上返回bool true / false,那么你也可以这样做。