为什么我不能检查某些东西是否不为空

Why cant I check if something is not empty

我正在尝试验证图片是否已上传。 但是自从 2 小时以来我无法弄清楚......:

输入:“”

我的代码:

$_SESSION["errorMessage"] = empty($image);

输出:1(真)

然后我想检查它是否为空:

$_SESSION["errorMessage"] = !empty($image); // Or empty($image) == false

但是输出什么都没有?!?!

即使我尝试第一个,当它应该是真的时,给出:“”

谁能帮我解决这个问题?

您可以使用 UPLOAD_ERR_NO_FILE 值:

function isset_file($file) {
    return (isset($file) && $file['error'] != UPLOAD_ERR_NO_FILE);
}

if(isset_file($_FILES['input_name'])) {
    // It's not empty
}

因为发送 $_FILES['input_name'] 可能会抛出通知

function isset_file($name) {
    return (isset($_FILES[$name]) && $_FILES[$name]['error'] != UPLOAD_ERR_NO_FILE);
}

if(isset_file('input_name')) {
    // It's not empty
}

尝试另一个例子:

if ($_FILES['theFile']['tmp_name']!='') {
    // do this, upload file
} // if no file selected to upload, file isn't uploaded.

当你回显一个假值时,它不会回显任何东西。你必须告诉 php 要显示什么,例如echo $_SESSION["errorMessage"] ? 'true' : 'false'; 在你的情况下,你可能想将它转换为一个 int:$_SESSION["errorMessage"] = (int)empty($image); 你也可以使用 var_dump 来验证,即 var_dump( $_SESSION["errorMessage"] );