是将空函数参数设置为NULL还是FALSE
例如:
function test1($a = FALSE, $b = FALSE)
{
if ($b)
{
// ... (some awesome code here)
}
//.. (more awesome code)
}
test1(0);或
function test2($a = NULL, $b = NULL)
{
if ($b !== NULL)
{
// ... (some awesome code here)
}
//.. (more awesome code)
}
test2(0);注意:在使用$a === NULL时,也要考虑一些问题。还可以使用“!empty()”,这取决于下面的代码是否需要空值。
哪个是更好的设计,为什么?
发布于 2016-01-24 14:40:03
从逻辑上讲,NULL值应该被视为不存在的东西。相反,FALSE有一些语义值,即使您可以将它视为一个空值。
所以,将FALSE作为是或否的答案,NULL作为无答案。如果您的参数是一个类似于$enable_this的选项,那么它可以是一个布尔值,并且您可能希望检查它是否为
if ($var)相反,如果您可以选择将某个东西作为参数传递,默认情况下它可以是NULL,然后您可以检查它是否真的存在于
if($var !== null)只有当您希望将empty测试为空值时,才应该使用它。$var不能是空字符串、空数组、"0"或0
发布于 2016-01-24 14:36:01
使用此
function test($a = NULL, $b = NULL)
{
if ($b !== NULL)
{
// ... (some awesome code here)
}
//.. (more awesome code)
}
test(0);不要使用if(!empty($b))、if($b!=NULL)和if(!is_null($b)),因为在这种情况下,$b=false && $b=0会失败
发布于 2016-01-24 15:07:58
你也可以这样做:
function test1($a = FALSE, $b = FALSE) {
if ($b===false) {
// ... (process default val-false)
}else{
//.. (process supplied value)
}
}https://stackoverflow.com/questions/34976959
复制相似问题