为什么要修复 E_NOTICE 错误?

2023-12-01

作为一名开发人员,我在打开 E_NOTICE 的情况下工作。最近有人问我为什么应该修复 E_NOTICE 错误。我能想到的唯一原因是纠正这些问题是最佳实践。

还有其他人有任何理由证明花费额外的时间/成本来纠正这些问题是合理的吗?

更具体地说,如果代码已经可以工作,经理为什么要花钱修复这些问题呢?


SUMMARY

The PHP 运行时配置文档让你知道为什么:

在开发过程中启用 E_NOTICE 有一些好处。

出于调试目的:NOTICE 消息将警告您代码中可能存在的错误。例如,使用未分配的值会受到警告。它对于查找拼写错误并节省调试时间非常有用。

NOTICE 消息会警告您不良风格。例如,$arr[item] 最好写为 $arr['item'],因为 PHP 尝试将“item”视为常量。如果它不是常量,PHP 会假定它是数组的字符串索引。

这是每个的更详细的解释...


1. 检测拼写错误

其主要原因是E_NOTICE错误是拼写错误。

示例-notice.php

<?php
$username = 'joe';        // in real life this would be from $_SESSION

// and then much further down in the code...

if ($usernmae) {            // typo, $usernmae expands to null
    echo "Logged in";
}
else {
    echo "Please log in...";
}
?>

不带 E_NOTICE 的输出

Please log in...

错误的!你不是这个意思!

带有 E_NOTICE 的输出

Notice: Undefined variable: usernmae in /home/user/notice.php on line 3
Please log in...

在 PHP 中,不存在的变量将返回 null 而不是导致错误,这可能会导致代码的行为与预期不同,因此最好注意E_NOTICE警告。


2. 检测不明确的数组索引

它还会警告您可能会更改的数组索引,例如

示例 - 代码今天看起来像这样

<?php

$arr = array();
$arr['username'] = 'fred';

// then further down

echo $arr[username];
?>

不带 E_NOTICE 的输出

fred

示例 - 明天你将包含一个库

<?php
// tomorrow someone adds this
include_once('somelib.php');

$arr = array();
$arr['username'] = 'fred';

// then further down

echo $arr[username];
?>

图书馆做了这样的事情:

<?php
define("username", "Mary");
?>

新输出

空,因为现在它扩展到:

echo $arr["Mary"];

并且没有钥匙Mary in $arr.

带有 E_NOTICE 的输出

如果程序员有E_NOTICE上,PHP 会打印一条错误消息:

Notice: Use of undefined constant username - assumed 'username' in /home/user/example2.php on line 8
fred

3. 最好的理由

如果你不解决所有问题E_NOTICE当你认为不是错误的错误时,你可能会变得自满,并开始忽略这些消息,然后有一天,当真正的错误发生时,你不会注意到它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么要修复 E_NOTICE 错误? 的相关文章

  • PHP 中的encodeURI() ?

    PHP 中是否有一些不编码的encodeURI 函数 我现在用这个 function encodeURI url http php net manual en function rawurlencode php https develope
  • PHP 共享标头而不使用服务器端脚本?

    到目前为止我总是通过 PHP 解决简单的问题 您有一个包含页眉 菜单 页脚和内容字段的网站 每个页面的页眉 菜单和页脚通常是相同的 在没有 PHP 或任何其他服务器端语言的情况下 如何使页眉 菜单和页脚数据仅存在于一个文件中 例如 您不会有
  • 如何将变量插入 PHP 数组?

    我在网上查了一些答案 但都不是很准确 我希望能够做到这一点 id result id info array id Example echo info 0 这有可能吗 您需要的是 不推荐 info array id Example varia
  • 我可以让 swagger-php 在查询字符串上使用数组吗?

    我使用 Swagger php 当我定义查询字符串上的参数时 它可以是一个数组 但据我所知 它不支持这种查询字符串 https api domain tld v1 objects q 1 q 5 q 12 我相信这会被设定in the co
  • 所有 PHP 相等比较都是对称的吗?

    Is a b总是等价于 b a 我认为在 JavaScript 中 由于强制转换 有一些奇怪的情况并非如此 I think ide https stackoverflow com questions 4752579 are all php
  • 选择一组数字以达到最小总数的算法

    给定 一组数字n 1 n 2 n 3 n x 还有一个数字M 我想找到最好的组合 n a n b n c n gt M 该组合应达到达到或超过 M 所需的最小值 没有其他组合可以提供更好的结果 将在 PHP 中执行此操作 因此可以使用 PH
  • laravel - 使用请求类或输入类

    在宁静的控制器中 我应该使用哪个类来获取传递的变量 member gt email Input get email or member gt email Request get email 两种选择都适合我 但有什么区别 Input get
  • 如何关闭未关闭的 HTML 标签?

    每当我们从数据库或类似来源获取一些经过编辑的用户输入内容时 我们可能会检索仅包含开始标记但不包含结束标记的部分 这可能会妨碍网站当前的布局 有客户端或服务器端的方法来解决这个问题吗 找到了一个很好的答案 使用 PHP 5 并使用 DOMDo
  • 如何防止在 PHP 中使用超出“使用”范围的特征方法

    我想知道是否有任何方法可以防止在 PHP 的任何类上下文之外使用特征方法 让我用一个简短的例子来解释我想要什么 这是我当前的代码 File MyFunctions php trait MyFunctions function hello w
  • 通过 URL 指定控制器类与为每个控制器编写一个脚本相比,有何优缺点?

    今年夏天我安装了两个不同的 PHP 系统 每个都使用两种不同的方法 方法 1 每个任务一个 PHP 文件 该方法需要一个PHP为每个主要任务创建文件 例如 我的上传脚本可以通过http www domain com upload php O
  • 使用 Instagram Basic Display API 时出现“无效平台应用程序”错误

    我正在尝试使用 Instagram Basic 显示 API 但是当我发布授权代码以获取访问令牌时 我不断收到以下错误 error type OAuthException 代码 400 error message 平台应用无效 我正在遵循此
  • 如何在 Zend MVC 中实现 SSL

    我之前已经通过使用特定的安全文件夹 例如服务器上的 https 文件夹与 http 文件夹 实现了安全页面 我已经开始使用 Zend Framework 并希望应用程序的某些部分 例如登录 使用 https 我在谷歌上搜索过 甚至在这里搜索
  • Ebay api GetSellerList,解析响应 XML

    我正在使用 eBay 交易 api 来获取当前列出的卖家股票 我正在使用 GetSellerList 调用 我在解析 xml 时遇到问题 然后将其插入到网站商店中 这是 xml 请求
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • 反向引用在 PHP 中不起作用

    最近我一直在研究 更多的是在实践中说实话 正则表达式 我注意到他的力量 我提出的这个要求 link https stackoverflow com questions 30380397 take the text up to a speci
  • Stream_context_set_params 不适用于 ssh2.sftp 包装器

    我想使用类似的功能here http www php net manual en function stream notification callback php 请检查以下代码 function notify notification
  • 如何使用 php 将 *.xlsb 转换为数组或 *.csv

    我正在尝试转换 xlsb文件到php array or csv文件 或至少 xls 我尝试使用PHPExcel 但看起来它无法识别该文件中的内容 我注意到 你可以重命名 xlsb文件到 zip文件 然后使用命令行解压缩unzip zip 之
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行
  • 如果产品重量超过1000克,如何以公斤为单位显示

    在 Storefront 主题中 我使用下面的代码将格式化重量从 1000g 更改为 1kg add action woocommerce after shop loop item title show weight 10 function

随机推荐

  • Android 模拟按键

    如何以编程方式模拟 Droid 上的按键操作 我想模仿手动按键 在机器人上显示有人正在按键 但它是以编程方式完成的 有一些解决方案涉及IWindowManager 但这在新的 SDK 中不再是一个选项 您可以使用检测 即从活动的 onCre
  • 如何将我自己的 jQuery 版本与浏览器化模块一起使用

    我应该预先澄清 我的问题是关于 Javascript 中的闭包和客户端模块模式 这不是关于如何使用 jQuery noConflict 我有一些 Javascript 人们可以将其添加到他们的网站中 我希望我自己的代码能够访问 变量 该变量
  • Java 中的 Arrays.fill 多维数组

    如何在不使用循环的情况下在 Java 中填充多维数组 我试过了 double arr new double 20 4 Arrays fill arr 0 这导致java lang ArrayStoreException java lang
  • Objective-C SSL 同步连接

    我对 Objective C 有点陌生 但遇到了一个我无法解决的问题 主要是因为我不确定我是否正确实现了解决方案 我正在尝试使用同步连接使用自签名证书连接到 https 站点 我正在得到 错误域 NSURLErrorDomain代码 120
  • NSFetchedResultsController ,其中包含由字符串的第一个字母创建的部分

    在 iPhone 上学习核心数据 关于核心数据用部分填充表视图的示例似乎很少 这核心数据手册示例使用部分 但它们是从模型中的完整字符串生成的 我想按照姓氏的第一个字母将核心数据表组织成多个部分 就像地址簿一样 我可以为每个人创建另一个属性
  • SWF 对象 - 我为什么要使用它

    我的所有网站都需要对搜索引擎友好 即搜索引擎可读 然而 我有点喜欢flash并且希望以友好的方式集成它 我可以选择 swfobject 它允许正确的页面名称并向用户和搜索引擎提供不同的页面 但是 我想知道为什么需要使用 swfobject
  • fmt.Scanf 在 Go 中无法正常工作

    我正在尝试一个应该测试 fmt Scanf 的片段 但它似乎没有按预期工作 package main import fmt time func main fmt Println What is your favorite color var
  • 类型错误:super() 至少需要 1 个参数 [Python 3] [重复]

    这个问题在这里已经有答案了 在下面的代码中 尽管我重新检查了超过 15 分钟 但仍然出现相同的错误 为了您的信息 我在 sublime text 上运行它并出现错误 类型错误 super 至少需要 1 个参数 给定 0 个 代码如下所示 c
  • Fruchterman Reingold 的吸引力如何与 Boost Graph Library 配合使用

    我正在 Boost Graph Library 中学习 Fruchterman Reingold 算法 通过阅读文档 我知道该算法是根据图形布局计算所有节点的位置 但我的问题是我无法理解Boost Graph Library中吸引力的计算步
  • 套接字断开通知方法

    只是寻找一个可能的解决方案来识别客户端何时断开连接 我找到了这个 public bool IsConnected Socket s try return s Poll 1 SelectMode SelectRead s Available
  • Pandas 按唯一计数分组作为新列

    我想添加一个新列col在我的 pandas 数据框中 计算公式为 select count distinct ITEM as col from base data where STOCK gt 0 group by DEPT CLAS DA
  • 如何使用 watir-webdriver 禁用 Firefox 中的下载窗口?

    我不想处理 Firefox 或 IE 中的下载窗口 我想自动下载excel文件 没有任何下载窗口 我尝试为 Firefox 设置几个配置参数 但没有成功 在我的测试中 我尝试下载 Excel 文件 profile Selenium WebD
  • wxpython。需要帮助解决令人困惑的错误

    该代码适用于另一台计算机上的其他人 但似乎不适用于我 我正在使用 python 2 7 7 它对另外两个人来说效果很好 但它似乎不喜欢我或我的计算机 因为每当我运行它时 它都会给我一条错误消息 你们有什么感想 Traceback most
  • 3G 条码阅读器

    我是 iPhone 应用程序的新手 但最近我看到一个帖子 要求为 3G iPhone 提供条形码读取器 人们 包括我 提到过zxing它适用于 3GS 或更高版本 如果您想申请 3G 那么最好从 QuickMark 或 Red Laser
  • PHP在post请求中读取xml

    所以 我执行了两个步骤 a 在其中一个 php 文件中创建一些随机 xml 文件 b 解析第二个文件中的相同 xml 文件 关键点是 a 中的 php 文件将向 php 文件 b 发出仅 xml 作为请求的 post 请求 文件 b 必须使
  • Perl 中最小的非零正浮点数是多少?

    我有一个 Perl 程序 它处理的概率有时可能非常小 由于舍入误差 有时其中一个概率为零 我想做以下检查 use constant TINY FLOAT gt 1e 200 my prob calculate prob if prob 0
  • sha1() 用于密码哈希

    我使用 sha1 来保证密码安全 我以这种方式将密码存储在register php中 secure password salt openssl random pseudo bytes 20 secured password sha1 pas
  • HTML5 Canvas putImageData,翻译它,更改图像

    我想使用 HTML5 画布绘制图像 翻译图像 然后更改图像 但保留我所做的转换 这可能吗 这是一些伪代码来说明我的问题 initially draw an image and translate it var context canvas
  • 如何在Python中打印嵌套列表的所有可能性?

    这是我的清单 pos det noun adj noun vb det vb noun adj Or pos det noun adj noun vb det vb noun adj 我正在尝试打印所有组合 det noun noun vb
  • 为什么要修复 E_NOTICE 错误?

    作为一名开发人员 我在打开 E NOTICE 的情况下工作 最近有人问我为什么应该修复 E NOTICE 错误 我能想到的唯一原因是纠正这些问题是最佳实践 还有其他人有任何理由证明花费额外的时间 成本来纠正这些问题是合理的吗 更具体地说 如