test.php 文件内容如下:
<?php
$arr = [];
var_dump($arr['pay-ip']);
然后通过不同的 PHP 版本去允许该代码:
root@iZuf67mcw0tro6podzt9fcZ:~# /www/server/php/74/bin/php /www/wwwroot/themes.example.com/test.php
NULL
root@iZuf67mcw0tro6podzt9fcZ:~# /www/server/php/83/bin/php /www/wwwroot/themes.example.com/test.php
PHP Warning: Undefined array key "pay-ip" in /www/wwwroot/themes.example.com/test.php on line 3
Warning: Undefined array key "pay-ip" in /www/wwwroot/themes.example.com/test.php on line 3
NULL
root@iZuf67mcw0tro6podzt9fcZ:~#
一:运行的 test.php 代码是一样的 二:PHP7 没有警告信息,PHP8 有警告信息 三:PHP7 与 PHP8 的 php.ini 在以下两个参数的配置一致
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
为啥 PHP8 报警告而 PHP7 没有报?是不是 php.ini 还有哪些参数影响了?还是说 PHP8 的报错处理机制改变了?有相关的参考链接可以看看吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.