使用php以不同的方式检查函数参数是否为空


Checking if function parameters are not empty, in a different way using php

我注意到,几乎在我编写的每个带有参数的PHP函数中,都以以下行开头:

if ( ! $first_parameter || ! $second_parameter ){
      return false;
}

我的问题有点奇怪
我很想用另一种类型的表达式来代替它,类似于操作数,因为我知道函数不能进行

带有一个函数(不起作用)的示例:

require_parameters( $first_parameter, $second_parameter );

然而,即使require_paremeters返回false,它也不会从原始函数返回false

有可能为PHP编写一个函数或C扩展来做类似的事情吗:

require_parameters $first_parameter, $second_parameter;

如果其中一个为空,那么原始函数将返回false。

谢谢。

您要寻找的东西在技术上是不可能的。

要从原始函数返回false,必须显式地使用return语句——不要绕过这一点。

在您的示例中,您需要使用:

return require_parameters( $first_parameter, $second_parameter );

但是require_parameters的定义必须使用varargs,因为您永远不知道可能需要多少个参数。

而且,由于PHP似乎不会直接处理varargs,因此您需要使用func_get_args()func_num_args()来检查每个接收到的arg是否已设置。文档可以在这里找到。

更新:正如Jad所指出的,这里的错误是,无论结果如何,该函数都将返回。不幸的是,(据我所知)没有办法简化以下内容,但我们可以使用短路逻辑使检查比使用全面的if短得多:

更新:我的坏消息,在or之后退货将不起作用。恐怕再简单不过了。

if (!require_parameters( $first_parameter, $second_parameter )) return false;