我以前没有在这里发帖,所以我不确定我的帖子礼仪是否达到了划痕,但我想我会在这里试试运气。
所以,我在这里有这个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
答案 0 :(得分:-2)
您正在使用$$a
(这是一个变量变量)。
您应该只有一个美元符号,例如$a
。
作为一般规则,你几乎不应该使用变量,尤其是如果它们来自用户输入。