Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理PHP通知(错误)_Php - Fatal编程技术网

如何处理PHP通知(错误)

如何处理PHP通知(错误),php,Php,如果未设置$n,以下代码将生成通知。解决它需要一个附加语句(isset($n))或“声明”$n($n=')。但这一通知有什么后果?下面的代码非常简洁,假设我们在生产中关闭了错误报告,前端没有明显的差异。有什么不好的事情接踵而至吗?普雷斯坦达,可读性等?(很抱歉英语不好) 按照sé的说法,除了糟糕的编码实践之外,通知没有“后果”。您应该在开发机器上使用设置为E\u ALL的error\u reporting进行编码,因此显然会有很多注意事项 我认为您的代码实际上并不整洁,因为您正在测试一个之前未设

如果未设置$n,以下代码将生成通知。解决它需要一个附加语句(
isset($n)
)或“声明”$n(
$n='
)。但这一通知有什么后果?下面的代码非常简洁,假设我们在生产中关闭了错误报告,前端没有明显的差异。有什么不好的事情接踵而至吗?普雷斯坦达,可读性等?(很抱歉英语不好)

按照sé的说法,除了糟糕的编码实践之外,通知没有“后果”。您应该在开发机器上使用设置为
E\u ALL
的error\u reporting进行编码,因此显然会有很多注意事项

我认为您的代码实际上并不整洁,因为您正在测试一个之前未设置的变量

建议如下:

<?php
if (!empty($n) && $n == 1)
{
    //do something
}
根据sé,除了糟糕的编码实践之外,通知没有“后果”。您应该在开发机器上使用设置为
E\u ALL
的error\u reporting进行编码,因此显然会有很多注意事项

我认为您的代码实际上并不整洁,因为您正在测试一个之前未设置的变量

建议如下:

<?php
if (!empty($n) && $n == 1)
{
    //do something
}

一个通知意味着,虽然您的代码将按预期工作,但它并不是按“应该”的方式编写的。这就像编译器告诉你“我知道你在这里的意思,我可以做到,但你不应该依赖它。请用不同的方式编写,这样我就不必做假设”

因此,通知本身并不意味着大部分时间都会发生坏事。但是,我不会把任何在代码中接受通知的人称为专业程序员,因为修复通知是一项非常简单的任务,没有任何通知说明您很好地理解了语言的基础。如果有人不能或不想做这么多,这说明了他们

在您的具体示例中,应该执行以下操作:

$n = null; // or some other appropriate initial value

// possibly change the value of $n here

if($n==1) {
    //do something
}

请注意,通过编写额外的
$n=null
,就编译器而言,您并没有使程序有任何不同(它最终会在发出通知的同时自行执行)。但是,对于阅读代码的人来说,你让它变得非常不同:使用此代码,他们将不会有“WTF this
$n
来自哪里?”的时刻。

一个通知意味着,虽然你的代码将按预期工作,但它并不是“像它应该的那样”编写的。这就像编译器告诉你“我知道你在这里的意思,我可以做到,但你不应该依赖它。请用不同的方式编写,这样我就不必做假设”

因此,通知本身并不意味着大部分时间都会发生坏事。但是,我不会把任何在代码中接受通知的人称为专业程序员,因为修复通知是一项非常简单的任务,没有任何通知说明您很好地理解了语言的基础。如果有人不能或不想做这么多,这说明了他们

在您的具体示例中,应该执行以下操作:

$n = null; // or some other appropriate initial value

// possibly change the value of $n here

if($n==1) {
    //do something
}

请注意,通过编写额外的
$n=null
,就编译器而言,您并没有使程序有任何不同(它最终会在发出通知的同时自行执行)。但是,对于阅读代码的人来说,这是非常不同的:使用这段代码,他们不会有“WTF this
$n
来自哪里?”的时刻。

通常在生产环境中,所有来自PHP库的错误报告在显示给最终用户之前都会被关闭或解析(它仍然被记录)


注意没有任何后果,只需注意开发人员,在您的示例中,使用值初始化变量可能会发生错误。

通常在生产环境中,来自PHP库的所有错误报告在显示给最终用户之前都会被关闭或解析(它仍然被记录)

注意没有任何后果,只是注意到开发人员可能会在这里发生一些不好的事情,在您的示例中,使用值初始化变量。

我遇到了一个函数,处理“PHP注意”可能会有好处。 功能是:

geoip_record_by_name()
此函数返回“false”,并在数据库中找不到的IP上发送“PHP通知”。 标准是为内部网络保留IP,否则将找不到本地主机。 作为一种可怕的做法,此函数将此正常情况视为床编码。WRRRRR

有一种解决方案,可以在发送到此函数之前过滤本地IP(假设geoip数据库覆盖了所有其他地址)

我把这个GeIPIPReordOrthByNAMEY()看作是PEST函数,处理“PHP通知”是有道理的。

我遇到了一个函数,处理“PHP通知”可能是有益的。 功能是:

geoip_record_by_name()
此函数返回“false”,并在数据库中找不到的IP上发送“PHP通知”。 标准是为内部网络保留IP,否则将找不到本地主机。 作为一种可怕的做法,此函数将此正常情况视为床编码。WRRRRR

有一种解决方案,可以在发送到此函数之前过滤本地IP(假设geoip数据库覆盖了所有其他地址)

我把这个GeIPIPReordOrthByNAMEY()看作是PEST函数,处理“PHP通知”是有道理的。


谢谢你的空提示。如果我理解正确,它包括
isset($n)
$n!=''?我的意思是,最整洁(或最短)的代码是去
$n==1
并注意,因为如果它在生产中不起作用。我的编辑只是一个实验,真的。一点HTML是允许的。谢谢你的提示。如果我理解正确,它包括
isset($n)