我正在尝试编写一个简单的函数来检查是否根据您要检查的函数设置了cookie或会话。出于某种原因,如果我告诉函数我要检查一个会话,它仍然给我输出'cookie'块中的条件。希望我能够很好地解释这一点。无论如何,如果有人能提供一些帮助,为什么这不能按照我想要的方式工作,那就太棒了。
function check($checkType, $name) {
if ($checkType = 'cookie') {
if(isset($_COOKIE[$name])) {
echo "Cookie '" . $name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$name];
die();
} else {
echo "Cookie named '" . $name . "' is not set!";
die();
}
} else if ($checkType = 'session') {
if(isset($_SESSION[$name])) {
echo "Session '" . $name . "' is set!<br>";
echo "Value is: " . $_SESSION[$name];
die();
} else {
echo "Session named '" . $name . "' is not set!";
die();
}
}
}
//initiate function with parameters
check('session', 'loginStatus');
答案 0 :(得分:1)
在if语句中,您使用赋值运算符(=)。要检查一个值是否等于另一个值,您应该使用相等的比较运算符(==)。
if ($checkType == 'cookie') {
// It's a cookie
} else if ($checkType == 'session') {
// It's a session
}
您可以在PHP here中阅读有关运算符的更多信息。