PHP if语句与isset不起作用

ben*_*e89 2 php http-status-code-404

我认为这是简单的代码,但这不能按预期工作:

$id = $_GET['id'];
if (!isset($id)){
    header("HTTP/1.1 404 not found");
    include("404.php");
}
else {
    include('includes/functions.php'); 
}
Run Code Online (Sandbox Code Playgroud)

所以我从URL获取了get参数但我没有收到404错误?

有任何想法吗?

krt*_*tek 11

你必须$_GET['id']直接进行测试:

if(!isset($_GET['id']) { ... }
Run Code Online (Sandbox Code Playgroud)

即使$_GET['id']未设置,因为您尝试将其分配给$id,$id开始存在,因此测试返回true,因此您没有404错误.