我以前没有在这里发帖,所以不确定我的发帖礼仪是否符合标准,但我想我会在这里碰碰运气。
所以,我在这里有一个PHP函数,我用它来创建变量,如果没有为设置值,它不会抛出错误
function getIfSet(&$value, $default = "") {
return isset($value) ? $value : $default;
}
我使用它的一个例子是:
$errormsg = getIfSet($_SESSION["LoginError"]);
if ($errormsg != "") {
unset($_SESSION["LoginError"]);
}
然而,我在一些页面上多次使用它,所以我尝试为此创建一个函数。这不起作用(不过,我对PHP很陌生),但我注意到以下代码可以使用
$a = "errormsg";
$b = "LoginError";
$$a = getIfSet($_SESSION[$b]);
if ($$a != "") {
unset($_SESSION[$b]);
}
因此,根据这个逻辑,我认为以下功能也会起作用
function get($a, $b) {
$$a = getIfSet($_SESSION[$b]);
if ($$a != "") {
unset($_SESSION[$b]);
}
}
get("errormsg", "LoginError");
但事实并非如此。相反,它说注意:第78行的未定义变量:errormsg,但我不太明白为什么它不起作用,因为当我在函数中使用变量$a和$b时,它工作得很好。提前谢谢你,很抱歉,如果我没有非常有效的编码,我是新的:D
您使用的是$$a
(它是一个变量变量)。
您应该只有一个美元符号,例如$a
。
作为一般规则,您几乎不应该使用变量,尤其是当它们来自用户输入时。