【发布时间】:2023-01-05 19:39:16
【问题描述】:
因此,看起来他们改变了使用未知键访问数组引发消息的方式。
<?php
if($myArray['foo']) { ... }
25 年来,这只是发出通知,人们很乐意在php.ini 中沉默E_NOTICE。对于(我认为)PhP 8.0,这现在会引发警告。
出于显而易见的原因,我不想让 E_WARNING 保持沉默,所以我(以及世界上所有其他多年来使用未初始化变量的人,因为他们的值只是 null,就像许多其他解释语言一样)正在寻找一种消除与未定义变量/数组/键相关的警告的可能方法,同时继续报告所有其他(更严重的)编程错误,例如包含不存在的文件。
这个问题背后的原因是我必须处理大量以上述模式编写的代码;我只是不能全部重写,但我仍然需要切换到 PhP 8,所以不,我不是在问如何使用isset()。
【问题讨论】:
-
我不这么认为。无法按特定类型的消息进行过滤,您只有不同的错误类别。
-
您可能不会问如何使用
isset(),但这肯定是专业解决您的 XY 问题的方法之一。 PHP8 正在帮助开发人员停止编写错误代码其他25年。 -
也许考虑不显示
ini_set('display_errors', 'Off');,但记录错误。ini_set('log_errors', 'On');。全部记录:ini_set('error_reporting', E_ALL ); -
@berend 请重读问题标题。我可以隐藏 PHP 警告:未定义的数组键吗不抑制所有其他警告?
-
教训是你也不应该一直忽视这些通知。
标签: php error-handling warnings isset