应该是PHP';通知';是否报告并修复?

应该是PHP';通知';是否报告并修复?,php,Php,我最近切换到一个新的设置,报告PHP通知;我的代码在没有修复这些通知的情况下运行良好,但我想知道修复每一个通知并将其保留在报告中,或者忽略它们并关闭通知报告是否有意义 对此有什么不同的看法?是否有与通知相关的最佳做法?在生产环境中,您不应显示任何通知 即使它们使您的应用程序崩溃 这只是一个安全提示 如果您从一个旧的php版本迁移到一个新的版本,您至少应该看一下通知,了解它是关于什么的。 有时是关于安全性的,有时只是告诉您此函数已被弃用 您还应该注意这些通知,除非您真的知道自己在做什么。它们被称为

我最近切换到一个新的设置,报告PHP通知;我的代码在没有修复这些通知的情况下运行良好,但我想知道修复每一个通知并将其保留在报告中,或者忽略它们并关闭通知报告是否有意义


对此有什么不同的看法?是否有与通知相关的最佳做法?

在生产环境中,您不应显示任何通知

即使它们使您的应用程序崩溃

这只是一个安全提示

如果您从一个旧的php版本迁移到一个新的版本,您至少应该看一下通知,了解它是关于什么的。 有时是关于安全性的,有时只是告诉您此函数已被弃用


您还应该注意这些通知,除非您真的知道自己在做什么。

它们被称为警告,因为您的程序仍然可以工作,但这意味着您做错了什么。如果你有时间去做,如果你想让代码“干净”并且可能是好的,那么就修复它们。如果收到警告,则代码不正确

…和警告可能导致错误:

如果收到未定义变量警告,则表示未检查变量是否存在。如果在MySQL查询中使用此变量会怎么样?它将失败并破坏您的程序

不要在实时网站上显示警告。他们向外界展示部分代码


最好的方法是以避免警告的方式编写代码。;)

是的,我会从我编写的任何PHP代码中删除通知,即使在我调查了所有的通知实例之后,它只是关闭了特定的通知ID。注意事项(即未定义索引、初始化变量)通常表示您忘记预测的情况。你应该调查每一个问题,消除真正的问题,然后可能抑制其他问题(用评论说明原因)


PHP手册本身声明“注意消息将警告您不良风格”,因此我猜官方的“最佳实践”与我概述的差不多。遵循好的风格,除非你有充分的理由不这样做。

这取决于哪些通知——大多数通知都是坏代码气味的证据——未定义的数组索引等。如果你确实抑制了某个通知,请在其旁边留下一条注释,说明你认为应该抑制该通知的原因

PHP.net说:

注意:在运行期间启用E_通知 发展有一些好处。对于 调试目的:通知消息 将警告您可能存在的错误 你的密码。例如,使用 未分配的值将被警告。它是 非常有助于查找拼写错误和 节省调试时间。通知 消息将警告您坏消息 风格例如,$arr[item]是 最好写为$arr['item'] 因为PHP试图将“项”视为 常数如果它不是一个常量,则为PHP 假定它是 数组


我将把每一个通知都视为改进代码的免费机会。:)

错误就是错误。在代码运行之前,必须先修复它们

警告就是警告。他们警告你,你正在做的可能是一个坏主意,即使它目前对你有效(或似乎有效)。因此,它们也应该被修复

通知就是通知。应该引起注意。因此得名。您的代码生成一些代码可能不是问题,但您应该根据具体情况进行检查和判断


当然,如果你没有收到400份通知,你会更容易注意到。因此,消除它们有很大的好处。它让你还没有注意到的东西变得更加引人注目。

像试图访问未定义的变量和未定义的索引这样的事情在每一个严肃的程序员的书中都是严重的错误,所以我真的不明白为什么他们选择它作为你可以注意到的东西,耸耸肩然后走开。我所知道的其他编译器都会在那个确切的位置中止程序

我会一直修复它们,它们几乎总是导致更严重错误的原因。

这个问题与否有关。