我正在尝试制作一个函数,该函数接受一个变量,无论它是否已设置,
就像函数 isset()
//we have this array
$array = array();
isset($array["test"]);//this one is valid
myFunc($array["test"]);//this one is not valid
我怎样才能让我的函数不设置变量?
我正在尝试制作一个函数,该函数接受一个变量,无论它是否已设置,
就像函数 isset()
//we have this array
$array = array();
isset($array["test"]);//this one is valid
myFunc($array["test"]);//this one is not valid
我怎样才能让我的函数不设置变量?
将参数作为参考传递 http://php.net/manual/en/language.references.pass.php
function myFunc(&$val)
{
return isset($val);
}
var_dump(myFunc($undefined));
如果您正在使用和朋友,通常会遇到此问题$_GET
,因为您不能依赖将给定字段传递到您的程序中。
我为此使用了一个实用程序类,因此我可以避免未设置变量的错误,并将默认值填充到其中。
<?php
function defArrayElem(&$array, $key, $default=null) {
if(!isset($array[$key])) {$array[$key]=$default;}
}
//repeat for all the $_GET/$_POST vars you expect...
defArrayElem($_GET,'keyname','default-value');
?>
现在您不必担心检查它们是否已设置。