【发布时间】:2021-10-31 06:50:47
【问题描述】:
我正在努力将我的所有应用程序更新到 PHP 7.4
我已阅读其他线程,指出 7.4 中的数组索引比以前的版本更严格,并且不再允许引用未设置的索引。很好,我明白了原因,但问题是如果我执行 sql 查询并且某些行的列为空,我会收到错误消息“消息:尝试访问类型为 null 的值的数组偏移量”。
例子
| col1 | col2 |
|---|---|
| 'val' | null |
如果我执行以下查询
select col1, col2 from table
sqlsrv_fetch_array 将返回 [col1: 'val'] 并且 col2 将是一个空偏移量。
我知道我可以说
$row['col1'] = $row['col1'] ?? 0;
$row['col2'] = $row['col2'] ?? 0;
但如果我选择了很多列,这会添加很多代码行以确保一切都设置好了。
有没有办法强制 sqlsrv_fetch_array 仍然返回一个包含所有索引的数组?
【问题讨论】:
标签: php indexing sqlsrv php-7.4