我有一个函数可以根据传递给它的过滤器检索图像。
function getImgs($one = NULL,$two = NULL,$three = NULL,$four = NULL) {}
我打电话给
$img->getImgs($_GET['one'],$_GET['two'],$_GET['three'],$_GET['four']);
这些参数不一定必须存在,因此它们在通过时可能是未定义的。
我希望传递每个参数(如果存在),如果不存在则不传递它。我该怎么办呢?当他们以某种方式被传递时,我可以= NULL
吗?
答案 0 :(得分:0)
编写一个检查params的函数,如下所示:
function getQueryParam($index)
{
return isset($_GET[$index])?$_GET[$index]:null;
}
//then call you function like this
$img->getImgs(getQueryParam('one'),getQueryParam('two'),getQueryParam('three'),getQueryParam('four'));
答案 1 :(得分:0)
尝试传递数组:
function getImgs($imgArr) {
foreach($imgArray as $key => $val){
if(!empty($val)){
// Do stuff
}
}
}
这样,您只能使用通过$_GET
传入的项目。
$img->getImgs($_GET);
答案 2 :(得分:0)
也许这有效:
$img->getImgs(($_GET['one']?$_GET['one']:NULL),($_GET['two']?$_GET['two']:NULL),($_GET['three']?$_GET['three']:NULL),($_GET['four']?$_GET['four']:NULL));
如果您使用错误日志记录,您可能会看到它引发了一些有关未定义变量的警告,此解决方案可防止崩溃/无法运行的代码,但它不会阻止日志记录。
这也假设变量不是FALSE, NULL, 0, array(), ''
或任何其他形式的零,零或空值。