PHP:强制参数

PHP:强制参数,php,Php,在实践中,如果某个参数没有传递给PHP函数,那么返回false的最佳方法是什么 主要是因为我调用这个函数将使用来自frontend的参数调用,这意味着用户可以将null作为参数传递,如果发生这种情况,我想返回false 在函数的顶部,我放置了: if (empty($param1) || empty($param2) || empty ($param3)) { return false; } 有更好的方法吗?简而言之:例外。我们现在在2011年,不鼓励出

在实践中,如果某个参数没有传递给PHP函数,那么返回false的最佳方法是什么

主要是因为我调用这个函数将使用来自frontend的参数调用,这意味着用户可以将null作为参数传递,如果发生这种情况,我想返回false

在函数的顶部,我放置了:

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);)