我正在尝试编写一个简单的函数,该函数根据您告诉要检查的函数的内容来检查是否设置了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');
在 if 语句中,您使用的是赋值运算符 (=)。要检查一个值是否等于另一个值,您应该使用相等的比较运算符 (==)。
if ($checkType == 'cookie') {
// It's a cookie
} else if ($checkType == 'session') {
// It's a session
}
您可以在此处阅读有关 PHP 运算符的更多信息。