【问题标题】:disable smarty notice禁用 smarty 通知
【发布时间】:2011-07-22 11:08:51
【问题描述】:

我想禁用 smarty-s 通知。

这正是:

注意:未定义变量:xy

因为我知道有些变量是未定义的,在某些情况下我什至不想定义它们。

但我不想禁用其他 PHP 通知。

感谢您的帮助!

【问题讨论】:

    标签: php html templates smarty


    【解决方案1】:

    您应该检查变量并确保在使用前定义和设置它们。删除通知和警告可提高应用程序的性能。

    当您的应用程序或网站发布时,您应该添加以下条件以避免错误出现在您的客户面前:

    error_reporting(E_ERROR || E_WARNING);
    

    只会出现警告和错误。

    【讨论】:

      【解决方案2】:

      你应该使用这个:http://www.smarty.net/docs/en/variable.error.reporting.tpl

      刚刚设置

      $smarty->error_reporting = E_ALL & ~E_NOTICE;
      

      【讨论】:

      • 是否可以只禁用那个未定义的变量。 ?
      • 我想你可以为此设置一个自定义错误处理程序。不过会有点矫枉过正。我总是使用 {if isset($xy) && $xy == "foo"}do it{/if}..
      • 请注意,这也会禁用所有 smarty 插件的所有通知以及它们将执行的任何代码。所以这意味着你自己的 error_reporting 设置将被 Smarty 和它执行的所有代码覆盖。我最终不得不删除此设置,因为它弄乱了我自己的 error_reporting 设置。
      【解决方案3】:

      自Smarty4以来有一种新方法:

          $smarty->setErrorReporting(E_ALL & ~E_NOTICE);
          $smarty->muteUndefinedOrNullWarnings();
      

      https://github.com/smarty-php/smarty/blob/v4.0.0/CHANGELOG.md

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-22
        • 2013-05-21
        • 1970-01-01
        • 2014-07-23
        • 2016-03-24
        • 1970-01-01
        • 1970-01-01
        • 2018-06-04
        相关资源
        最近更新 更多