【问题标题】:custom empty() function自定义 empty() 函数
【发布时间】:2013-04-08 22:00:55
【问题描述】:

今天我创建了一个名为is_empty() 的函数。该函数类似于现有的 empty() 函数 - 它添加了我的脚本所需的更多检查。

但是,现在当我运行脚本并且未设置某些值时,我收到:Notice: Undefined index 通知。默认empty() 函数显示此通知并假定值为空,有什么方法可以配置我的函数来做同样的事情吗?而不是将isset()is_empty() 一起使用?

非常感谢!

编辑:我的功能在这里:

function is_empty($value, $integer = FALSE){
    if($integer){
        return empty($value) && !is_numeric($value);
    }
    return empty($value);
}

【问题讨论】:

  • ...没有你的函数代码,这可做不了多少
  • empty() 不是一个函数,你不能实现类似它的东西。
  • 发布您的代码。我想知道你的功能是什么类型的检查没有被空覆盖?
  • $return 未被您的代码使用。正则表达式行没用。

标签: php function isset


【解决方案1】:

通知并非来自您在函数内部执行的某些检查。该通知来自将一些参数传递给您的函数,即在函数体实际执行之前。因此,您无法通过以不同方式实现该功能来改变这一点。

【讨论】:

    【解决方案2】:

    我会这样做:

      function is_empty($value, $integer = FALSE){
        if (!empty($value)){
        if($integer !== FALSE){
            $return = preg_replace("/[^0-9]+/", "", $value);
            return empty($value) && !is_numeric($value);
        }
        return empty($value);
        }
        return FALSE;
        }
    

    【讨论】:

    • empty() 调用在您的代码中毫无意义。您可以删除它们,什么都没有会改变。所以if (!empty($value)){ -> if (!$value){
    • @zerkms empty 将抑制 Undefined var 通知。
    • 一旦作为函数参数传递 - 它就总是被定义了。
    【解决方案3】:

    这是我的 is_empty 函数版本

    function is_empty(&$var)
    {
        return is_string($var) ? trim( $var ) == '' : empty($var);
    }
    

    解决办法是通过引用传递变量。

    这是另一个这样的示例:

    custom function that uses isset() returning undefined variables when used

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-08-08
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      • 2018-03-24
      • 2017-06-12
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多