Reference If语句本身不正常

Reference If语句本身不正常,reference,Reference,我有一个非常简单的if语句,它查看是否设置了$\u FILES[],如果设置了,则创建一个变量。这是: if(isset($_FILES['photo']['name'])){$image="yes";} 因此,如果它发现文件实际上已设置,则将$image的值设为yes。此时,无论是否设置,该值都将传递给$image。我快发疯了。如果我连['name']部分都掉了也没关系。我一直在做我能想到的if语句的每一个化身,以使其正常工作,但我不知所措。事实证明,检查$\u files isset是否

我有一个非常简单的if语句,它查看是否设置了$\u FILES[],如果设置了,则创建一个变量。这是:

 if(isset($_FILES['photo']['name'])){$image="yes";}

因此,如果它发现文件实际上已设置,则将$image的值设为yes。此时,无论是否设置,该值都将传递给$image。我快发疯了。如果我连['name']部分都掉了也没关系。我一直在做我能想到的if语句的每一个化身,以使其正常工作,但我不知所措。

事实证明,检查$\u files isset是否会返回一个值,即使没有上传任何文件,数组也会包含信息。如果您对$files['photos']['name']执行var_dump,您将看到该信息位的值为0,因此在检查其设置时,您将得到肯定的响应。这就是我克服问题的方法:

    $foo =$_FILES['photo']['name'];
    $foopoo =  $foo[0];
   if (strlen($foopoo)>2){$image= "yes";}