在PHP7.4中,尝试访问bool类型值的数组偏移量时出错
我有这样一个代码:在PHP7.4中,尝试访问bool类型值的数组偏移量时出错,php,Php,我有这样一个代码: // load the file self::$_list = array(); $handle = fopen($file, 'r'); while (!feof($handle)) { $line = fgetcsv($handle); if (null != $line && count($line)!=2) continue; self::$_list[trim($line[0])] = trim($line[1]); } fc
// load the file
self::$_list = array();
$handle = fopen($file, 'r');
while (!feof($handle)) {
$line = fgetcsv($handle);
if (null != $line && count($line)!=2) continue;
self::$_list[trim($line[0])] = trim($line[1]);
}
fclose($handle);
但当我测试时,我得到了如下错误:
// load the file
self::$_list = array();
$handle = fopen($file, 'r');
while (!feof($handle)) {
$line = fgetcsv($handle);
if (null != $line && count($line)!=2) continue;
self::$_list[trim($line[0])] = trim($line[1]);
}
fclose($handle);
注意:尝试访问中bool类型值的数组偏移量
该错误涉及脚本自身:$\u list[trim$line[0]]=trim$line[1] 正如您在返回部分所读到的:
如果提供了无效句柄,fgetcsv将返回NULL;如果出现其他错误(包括文件结尾),fgetcsv将返回FALSE
因此,当到达文件末尾时,问题是$line[0],因为$line是false
请考虑查看下面页面上的示例,并使用这些示例作为重写函数的指南,或者如果要检查该条件,请添加到中间,如:
if ( null != $line && count($line) != 2 || $line === false ) continue;
正如您在返回部分所读到的:
如果提供了无效句柄,fgetcsv将返回NULL;如果出现其他错误(包括文件结尾),fgetcsv将返回FALSE
因此,当到达文件末尾时,问题是$line[0],因为$line是false
请考虑查看下面页面上的示例,并使用这些示例作为重写函数的指南,或者如果要检查该条件,请添加到中间,如:
if ( null != $line && count($line) != 2 || $line === false ) continue;
很抱歉,7.4不推荐使用数组?不,没问题。没有提到不推荐,抱歉,但是在7.4上不推荐使用数组?不,没问题。没有提到反对