通过自定义 PHP 函数有条件地输出变量


Conditionally Output Variables through Custom PHP Function

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

  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
}