gpt4 book ai didi

PHP 通知和警告

转载 作者:可可西里 更新时间:2023-11-01 00:43:14 24 4
gpt4 key购买 nike

我四处张望,但未能找到与这种特定情况相关的任何信息,我是一名后端开发人员,并且总是写(类似的东西):

if (!defined("something")) define("something", true);

不仅仅是

define("something"; true);

如果文件被多次包含,第二个片段将触发通知。数组索引的类似情况:

$data = array();
echo $data["does not exist"];

会触发通知,所以我的首选方式是:

$data = array();
if (isset($data["does not exist"]) echo $data["does not exist"];
else echo "Missing info";

PHP 有能力抑制这些消息,但我保持启用它们,因为我认为这些检查是很好的做法,但我缺乏证据证明它们是需要的,最近一位同事争辩说有没有检查对编码没有影响。

您是否知道不开具支票会带来任何安全隐患?或者我可能是偏执狂并且可以接受禁用通知?

PS:不确定这个问题是否更适合 StackOverflow,但请随时告诉我,我会尝试移动它。

最佳答案

在开发期间禁用通知是 Not Acceptable ,因为它会指出您的代码存在问题。理想情况下,您的代码应该能够以 E_ALL 和 E_STRICT 错误报告级别运行,并且仍然不报告任何错误。确切的细节取决于 PHP 版本,可以找到文档 here .

我不认为任何一个选项比另一个更不安全,除非存在另一个安全问题,它可能以某种方式被掩盖。不过,我认为这两种形式都是不好的做法。

当站点处于生产状态时,重要的是只记录错误,并设置 ini.display_errors离开。如果无法处理产生大量特定错误的代码,那么降低生产中的错误报告级别可能会有用,但应该纠正该代码。

我确实认为代码应该避免生成通知,这可能是一个“较小”的问题,但它仍然是一个在开发时应该注意的问题。

避免这些错误的正确方法就是避免多次包含文件。 (参见:include_once()require_once())如果您使用的是框架,它可能包含一个为您处理包含的方法。查阅相关文档,并确保您使用它们的实现来包含文件。

关于PHP 通知和警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27868660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com