php - 消除有关 undefined variable 的通知的最佳方法是什么?

标签 php codeigniter

我使用 codeigniter,我对 View 的主要问题之一是可能存在也可能不存在的 undefined variable 。

我知道使用以下内容时很容易摆脱通知:

<?=html($this->input->post('name'))?>

通过添加 if(isset(..){ html($this->input->post('name')); }

但这很烦人,而且让代码看起来很难看,我也不想禁用通知报告。

对此有什么建议吗?

最佳答案

“最好”的方法?我仍然说它是isset。明确地说出来是件好事,这将帮助我,作为稍后维护代码的人,认识到您可以接受该变量不存在,并且这不仅仅是一个错误。除非有 isset 检查,我假设您只是没有意识到它可能不被设置,并且想知道您实际上想要做什么。

此外,我断言它看起来丑陋的主要原因之一是因为所有代码都被塞进一行。您想要做两件事:检查它是否已设置,如果已设置则打印它。也许将它们分开看起来会更好,即使它有点冗长:

<?php if( isset($this->input->post('name')) ): ?>
    <?= $this->input->post('name') ?>
<?php endif ?>

这也使得代码片段以后更容易管理,以防您以后决定将输出包装在 HTML 标记中,或者添加 else 情况。

另外,由于根据问题,我们不能弄乱错误报告设置,因此检查变量是否存在是唯一选项。对不起。您可以检查它是否已设置,或者禁用表示未设置的错误消息。没有中间道路。

关于php - 消除有关 undefined variable 的通知的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6558612/

相关文章:

php - 当在另一个 css 文件的 div 上设置时它不起作用,当设置为 body 时,它起作用

php - 操作 '=' 的排序规则混合非法

javascript - jquery确认取消仍然提交表单

php - 连接时如何确定 2 列的日期

javascript - 如何使用 javascript 发布文本 '&nsbp '?

php - 如何显示来自其他站点的 RSS 提要

nginx <=> php-fpm : unix socket gives error, tcp 连接很慢

使用 curl 进行 PHP 抓取 - 我该如何调试

css - codeigniter Controller 和 controller/之间有什么区别?

mysql - Codeigniter 如何从模型中的同一列返回多行