我写了一个非常简单的函数,认为它只会在存在时输出其参数:
function hurl($var,$default="")
{
if(isset($var) && !is_null($var) && gettype($var) != "object" && gettype($var) != "array")
return $var;
return $default;
}
这样,您可以简单地 hurl($_POST['变量']),如果 POST 变量不存在,它不会生成错误。但是我仍然收到一个错误,好像它正在尝试引用一个不存在的值。
然后我读了 isset() 文档上的通知:
注意:因为这是一个语言结构而不是函数,所以它 不能使用变量函数调用。
这将我链接到变量函数,内容如下:
变量函数不适用于语言结构,例如 echo, print, unset(), isset(), empty(), include, require 等。 利用包装器函数来使用这些结构中的任何一个作为 变量函数。
我该怎么做?有人可以写一个示例,或者一种更简单的检查方法,而不必在整个页面上不断编写isset()和is_null()吗?在这种情况下,尝试捕获语句会以某种方式起作用吗?
你可以做这样的事情:
function hurl($key, $value='') {
if (array_key_exists($key, $_POST)) {
if (!is_object($_POST[$key]) && !is_array($_POST[$key])) {
$value = $_POST[$key];
}
}
return $value
}