【问题标题】:PHP: Notice Undefined index even using issetPHP:即使使用 isset,也要注意未定义的索引
【发布时间】:2011-08-17 17:25:34
【问题描述】:

即使使用 'isset' 我也会得到这个:

Notice: Undefined index

它在以下位置给出错误:

returnifisset($_COOKIE["miceusername"], ' value="', '"');

即使我正在检查 cookie 是否设置。功能是:

function returnifisset($variable, $first = '', $last = ''){
    if(isset($variable) and !empty($variable)){ return $first.$variable.$last; }
}

我应该如何修改这个函数以使其工作而不出现错误!

【问题讨论】:

  • 在函数内部之前,您不会使用 isset。 PHP 在函数处理变量之前查看 cookie 和索引。这就是您的错误的来源。
  • 您需要执行printifisset(isset($COOKIE["miceusername"], ' value="', '"');),这完全违背了使用该功能的目的。我的建议是完全跳过该功能,因为它是不必要的,而且如果有的话,您从完整输入中获得的节省是微乎其微的。
  • 好的,谢谢,我试试看
  • @Ameer 用代码替换函数。而不是调用returnifisset 替换函数中的代码。另外,只是为了确保您知道:从returnifisset 调用 return 不会返回调用上下文的值。如果需要,您必须使用 return returnifsset('...','...','...');
  • @Jrod 它是这样工作的,但为什么呢?为什么这样?为什么不用函数呢?

标签: php function isset


【解决方案1】:

在 isset 被调用之前,您实际上是通过将变量与您的函数一起传递来访问该变量。你无法解决这个问题。

【讨论】:

    【解决方案2】:

    您使用不同的函数名称 printifisset 和 returnifisset。 您也只能使用 !empty() 语句

    【讨论】:

      猜你喜欢
      • 2017-10-09
      • 2018-03-19
      • 2021-03-07
      相关资源
      最近更新 更多