我已经压制通知很长一段时间了,没有任何问题,但我开始怀疑我是否做对了。我似乎找不到任何合乎逻辑的理由为什么我不应该压制它们,但其他一些人似乎认为使用 error_reporting 压制它们是一件可怕的事情,但为什么呢?
我能找到的最接近答案的是这个问题,但这离我正在寻找的答案还很远。隐藏 PHP 生成的所有通知是否有某种不可预见的缺点?例如,由于出现错误,要将来自 POST 调用的变量包含回表单中,我只需使用:
<?= $_POST['variable'] ?>
这将生成一个 PHP 通知。要修复该通知,我可以使用以下内容:
<?= isset($_POST['variable']) ? $_POST['variable'] : '' ?>
但是,这真的有必要吗?我的代码是否真的会从这样做中受益,而不仅仅是回显变量是否存在并可能创建 PHP 通知?在我看来,能够忽略通知是使用 PHP 的一个好处,因为这样您就不必担心是否定义了变量,尤其是对于像这样的例子,它似乎并不重要。
我还利用 PHP 的能力,根据变量的使用方式自动更改变量的类型/转换,您经常会发现如下代码片段:
for ($i = 0; $i < $limit; $i++) $results[] = $i; // Example
where$results
以前没有定义,但是当我尝试将新项目作为数组添加到它时,它变成了一个数组。我有点喜欢这样做,因为如果没有结果被添加到数组中并且我需要存储该信息或出于任何原因将其转换为 JSON,那么将不会定义该特定变量,从而节省额外的带宽,即使它是分钟。
$data = stdClass; // For reference, in my case this would be defined before this code
$data->results = array();
$limit = 0;
for ($i = 0; $i < $limit; $i++) $data->results[] = $i;
print json_encode($data);
// {"results":[]}
相对
$data = stdClass; // For reference
$limit = 0;
for ($i = 0; $i < $limit; $i++) $data->results[] = $i;
print json_encode($data);
// []
又是一个问题:我从修复通知错误中获得什么真正的好处,如果有的话,而不是仅仅压制它们?它如何/会损害我的代码?