【问题标题】:Conditionally Output Variables through Custom PHP Function通过自定义 PHP 函数有条件地输出变量
【发布时间】:2013-09-13 10:01:01
【问题描述】:

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

  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() documentation上的通知:

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

这将我链接到Variable Functions,内容如下:

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

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

【问题讨论】:

    标签: php function wrapper


    【解决方案1】:

    你可以这样做:

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

    【讨论】:

    • 也想过这个解决方案,但不知道 RecoJohnson 是否想要一个适用于所有类型变量的解决方案。
    猜你喜欢
    • 2013-12-02
    • 2021-08-23
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    相关资源
    最近更新 更多