PHP:强制参数
在实践中,如果某个参数没有传递给PHP函数,那么返回false的最佳方法是什么 主要是因为我调用这个函数将使用来自frontend的参数调用,这意味着用户可以将null作为参数传递,如果发生这种情况,我想返回false 在函数的顶部,我放置了:PHP:强制参数,php,Php,在实践中,如果某个参数没有传递给PHP函数,那么返回false的最佳方法是什么 主要是因为我调用这个函数将使用来自frontend的参数调用,这意味着用户可以将null作为参数传递,如果发生这种情况,我想返回false 在函数的顶部,我放置了: if (empty($param1) || empty($param2) || empty ($param3)) { return false; } 有更好的方法吗?简而言之:例外。我们现在在2011年,不鼓励出
if (empty($param1) || empty($param2) || empty ($param3)) {
return false;
}
有更好的方法吗?简而言之:例外。我们现在在2011年,不鼓励出现错误时使用
false
但是,我不会使用
empty()
进行测试,因为这包括'
(当然是空字符串)和0
。这可能不是每种情况都需要的。简而言之:例外。我们现在在2011年,不鼓励出现错误时使用false
但是,我不会使用empty()
进行测试,因为这包括'
(当然是空字符串)和0
。这可能不是每种情况都需要的。我们有SPL例外。我们有SPL例外。注意:空(0)将返回false
也许isset()更适合您的情况。注意:空(0)将返回false
也许isset()更适合您的情况。我更喜欢这种方式:
function a($param1 = null, $param2 = null) {
if(!isset($param1, $param2)
return false;
}
我喜欢这样:
function a($param1 = null, $param2 = null) {
if(!isset($param1, $param2)
return false;
}
可以按处理方式处理,也可以为函数指定默认值。许多PHP调用以这种方式处理可选参数
function($param1, $param2='default',$param3='default')
通过这种方式,您可以确保代码每次都具有正确的值,或者至少具有“正常”的值,而不管传递的是什么
您也可以在代码中引发异常 您可以按处理方式处理,也可以为函数指定默认值。许多PHP调用以这种方式处理可选参数
function($param1, $param2='default',$param3='default')
通过这种方式,您可以确保代码每次都具有正确的值,或者至少具有“正常”的值,而不管传递的是什么
您也可以在代码中引发异常 只是为了好玩:
function test() {
if( count(array_filter(func_get_args(), create_function('$v', 'return isset($v);'))) ) {
throw new \InvalidArgumentException("Invalid parameters");
}
}
只是为了好玩:
function test() {
if( count(array_filter(func_get_args(), create_function('$v', 'return isset($v);'))) ) {
throw new \InvalidArgumentException("Invalid parameters");
}
}
你所拥有的有什么问题?你所拥有的有什么问题?至少提出一个描述性的例外。如果你确实传入了错误的值,这不是故意的,你会想知道哪一段代码出错了。至少要提出一个描述性的异常。如果你确实传入了错误的值,这不是故意的,你会想知道是哪一段代码出错了。只是考虑了类似的解决方案,但是使用
函数($v){return is_null($v);}
(PHP>=5.3);)刚刚考虑过类似的解决方案,但是使用函数($v){return is_null($v);}
(PHP>=5.3);)