Php 为什么函数对于$文件不准确?

Php 为什么函数对于$文件不准确?,php,Php,我想测试用户是否选择了一个文件,因此我测试了$\u FILES['input\u name']['name']是否不为空 我使用了PHP函数is_null$\u FILES['input_name']['name'],但是代码会转到假定选择了文件的语句 所以我用$_文件['input_name']['name']替换了我的测试 那么为什么$\u文件['name']的null不准确呢?别忘了,null与 表示空字符串,而null可以表示未初始化的字符串。别忘了,null与 表示空字符串,而null

我想测试用户是否选择了一个文件,因此我测试了$\u FILES['input\u name']['name']是否不为空

我使用了PHP函数is_null$\u FILES['input_name']['name'],但是代码会转到假定选择了文件的语句

所以我用$_文件['input_name']['name']替换了我的测试


那么为什么$\u文件['name']的null不准确呢?

别忘了,null与


表示空字符串,而null可以表示未初始化的字符串。

别忘了,null与


表示空字符串,而null可以表示未初始化的字符串。

Is\u null与空字符串不同


这很容易在var_转储值时看到

Is_null与空字符串不同


这很容易在var_转储值时看到

这意味着$\u文件数组未初始化为空值数组。我想你必须用空的来代替


这意味着$\u文件数组未初始化为空值数组。我想你必须用空的来代替


尝试使用空函数而不是==

尝试使用空函数而不是==

如果var为null,is_nullvar将返回TRUE,否则返回FALSE

if(is_null($_FILES['input_name']['name'])){
 block of code;//file name is null
}

如果var为null,则is_nullvar返回TRUE,否则返回FALSE

if(is_null($_FILES['input_name']['name'])){
 block of code;//file name is null
}

因为该值不为null。var\u dump$\u文件以查看它的实际内容。@pheromix您看到我的答案了吗?因为该值不是null。var_dump$_文件以查看其实际内容。@pheromix您看到我的答案了吗?只需使用empty检查null和Emptynes。var_dump$_文件后,我得到以下结果:array1{[post_photo]=>array5{[name]=>string0[type]=>string0[tmp_name]=>string0[error]=>int4[size]=>int0}。那么它是什么意思呢?它说:[name]=>string0意味着它是一个空字符串,值为。它肯定没有空值。使用空来检查!只需使用empty来检查null和emptynes。在var_转储$_文件之后,我得到了以下结果:array1{[post_photo]=>array5{[name]=>string0[type]=>string0[tmp_name]=>string0[error]=>int4[size]=>int0}。那么它是什么意思呢?它说:[name]=>string0意味着它是一个空字符串,值为。它肯定没有空值。使用空来检查!不,null表示null,这是一种自己的数据类型,其中null是唯一可能的value@KingCrunch我知道,但我试图找到另一种说法:PNo,null表示null,这是一种自己的数据类型,其中null是唯一可能的value@KingCrunch我知道,但我正试图找到另一种说法:不一定。如果不知道变量是否存在,并且希望将其与false进行比较,请使用empty。不知道它是否存在的部分是重要的;如果变量应该存在,那么不要使用空。而且,0也是空的!不一定。如果不知道变量是否存在,并且希望将其与false进行比较,请使用empty。不知道它是否存在的部分是重要的;如果变量应该存在,那么不要使用空。而且,0也是空的!