PHP:注意,即使使用isset,也没有定义索引

PHP:注意,即使使用isset,也没有定义索引,php,function,isset,Php,Function,Isset,我甚至用“isset”也能得到这个: Notice: Undefined index 它在以下位置给出错误: returnifisset($_COOKIE["miceusername"], ' value="', '"'); 即使我正在检查cookie是否已设置。功能是: function returnifisset($variable, $first = '', $last = ''){ if(isset($variable) and !empty($variable)){ ret

我甚至用“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之前,通过将变量与函数一起传递来访问变量。您无法解决此问题。

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

在函数内部之前,不能使用isset。PHP在函数处理变量之前查看cookie和索引。这就是错误的来源。您需要执行
printifisset(isset($COOKIE[“miceusername”],“value=“”,““”);)
,这完全违背了使用函数的目的。我的建议是完全跳过这个函数,因为它是相当不必要的,而且你从完整键入它中得到的节省是最小的,如果有的话。好的,谢谢你,我会给它一个简单的解释try@Ameer用代码替换函数。代替调用
returniAsset
替换函数中的代码。另外,为了确保您知道:从
returnifisset
调用return不会返回调用上下文的值。您必须使用
return returnifsset(“…”、“…”、“…”)如果你想要的话。@Jrod它是这样工作的,但为什么?为什么这样?为什么不用函数呢?