Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过自定义PHP函数有条件地输出变量_Php_Function_Wrapper - Fatal编程技术网

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

通过自定义PHP函数有条件地输出变量,php,function,wrapper,Php,Function,Wrapper,我编写了一个非常简单的函数,认为它只有在参数存在时才会输出参数: function hurl($var,$default="") { if(isset($var) && !is_null($var) && gettype($var) != "object" && gettype($var) != "array") return $var; return $default; } 这样,您可以简单地抛出($

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

  function hurl($var,$default="")
  {
    if(isset($var) && !is_null($var) && gettype($var) != "object" && gettype($var) != "array")
        return $var;
    return $default;
  }
这样,您可以简单地抛出($_POST['variable']),如果POST变量不存在,它不会生成错误。但我仍然得到一个错误,好像它试图引用一个不存在的值

然后,我看到了一则关于:

注意:因为这是一个语言构造而不是函数,所以 无法使用变量函数调用

这将我与以下内容联系起来:

变量函数不能与echo等语言结构一起使用, print、unset()、isset()、empty()、include、require等。 利用这些构造中的任何一个作为 变量函数


我该怎么做?是否有人可以编写一个示例,或者一个更简单的检查方法,而不必不断地编写isset()和is_null()?try-catch语句在这种情况下会起作用吗?

您可以这样做:

function hurl($key, $value='') {
    if (array_key_exists($key, $_POST)) {
        if (!is_object($_POST[$key]) && !is_array($_POST[$key])) {
            $value = $_POST[$key];
        }
    }
    return $value
}

我也考虑过这个解决方案,但不知道约翰逊是否想要所有类型变量的解决方案。