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

时间:2013-09-09 20:14:47

标签: php function wrapper

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

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

这样你只需投掷($ _ POST ['variable']),如果POST变量不存在就不会产生错误。但我仍然得到一个错误,好像它试图引用一个不存在的值。

然后我在isset() documentation上阅读了一条通知:

  

注意:因为这是一种语言结构,而不是一种功能   无法使用变量函数调用。

这将我与Variable Functions联系起来:

  

变量函数不适用于语言结构,如echo,   print,unset(),isset(),empty(),include,require等。   利用wrapper functions来使用任何这些结构   变量函数。

我该怎么做?有人可以写一个例子,或更简单的检查方法,而不必经常在页面上写isset()和is_null()吗?尝试使用catch语句以某种方式在这种情况下工作吗?

1 个答案:

答案 0 :(得分: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
}