0

我写了一个非常简单的函数,认为它只会输出它的参数,如果它存在:

  function hurl($var,$default="")
  {
    if(isset($var) && !is_null($var) && gettype($var) != "object" && gettype($var) != "array")
        return $var;
    return $default;
  }

这样你可以简单地 hurl($_POST['variable']) 如果 POST 变量不存在,它不会产生错误。但我仍然得到一个错误,好像它试图引用一个不存在的值。

然后我阅读了有关isset() 文档的通知:

注意:因为这是一种语言结构而不是函数,所以不能使用变量函数来调用它。

这将我链接到变量函数,其内容为:

变量函数不适用于 echo、print、unset()、isset()、empty()、include、require 等语言结构。利用包装函数将这些结构中的任何一个用作变量函数。

我怎样才能做到这一点?有人可以写一个例子,或者一个更简单的检查方法,而不必在整个页面上不断地写 isset() 和 is_null() 吗?try catch 语句会以某种方式在这种情况下起作用吗?

4

1 回答 1

0

你可以这样做:

function hurl($key, $value='') {
    if (array_key_exists($key, $_POST)) {
        if (!is_object($_POST[$key]) && !is_array($_POST[$key])) {
            $value = $_POST[$key];
        }
    }
    return $value
}
于 2013-09-09T20:33:55.827 回答