Php fgtecsv问题和无效的文件句柄
下面的代码回显“Null”,但这怎么可能呢?Php fgtecsv问题和无效的文件句柄,php,Php,下面的代码回显“Null”,但这怎么可能呢? fopen返回非false(即有效的文件处理程序),但fgetcsv返回NULL,这意味着给定的文件处理程序无效。我不明白 if ($fh = fopen("2014_01.csv", 'r') !== FALSE) { if ($test = fgetcsv($fh, 0, ';') == NULL) echo "Null"; fclose($fh); } else echo "fh error"; 看看P
fopen
返回非false(即有效的文件处理程序),但fgetcsv
返回NULL,这意味着给定的文件处理程序无效。我不明白
if ($fh = fopen("2014_01.csv", 'r') !== FALSE) {
if ($test = fgetcsv($fh, 0, ';') == NULL)
echo "Null";
fclose($fh);
} else
echo "fh error";
看看PHP。比较(=
)的优先级高于赋值(=
),这就是为什么它的计算结果如下:
if ($fh = (fopen() !== FALSE)) {
if ($test = (fgetcsv() == NULL))
这不是你想要的。在作业周围加括号:
if (($fh = fopen("2014_01.csv", 'r')) !== FALSE) {
if (($test = fgetcsv($fh, 0, ';')) == NULL)
看看PHP。比较(=
)的优先级高于赋值(=
),这就是为什么它的计算结果如下:
if ($fh = (fopen() !== FALSE)) {
if ($test = (fgetcsv() == NULL))
这不是你想要的。在作业周围加括号:
if (($fh = fopen("2014_01.csv", 'r')) !== FALSE) {
if (($test = fgetcsv($fh, 0, ';')) == NULL)
试着把这个$test=fgetcsv($fh,0,,;')放在if之前,可能它对if语法有效,但对if语法无效,因为计算顺序不正确(请参见下面的答案),
$fh
获取的值TRUE
不是有效的句柄。PHP是正确的。尝试将$test=fgetcsv($fh,0,,;')放在if之前,可能它对if语法有效,但对if语法无效,因为计算顺序不正确(请参见下面的答案),$fh
获取的值TRUE
,该值不是有效的句柄。PHP是正确的。