php 7.2 中的未定义常量错误

新手上路,请多包涵

我在 php v7.2 中有这些错误,但在使用 php E_WARNING v7.1

如何解决以下错误?

/web13/web/boutique/includes/Sites/Shop/NavigationHistory.php 第 39 行 [12-Jan-2018 22:44:20 America/Toronto] PHP 警告:使用未定义的常量 MODULE_HEADER_SELECT_TEMPLATE_STATUS - 假定为“MODULE_HEADER_SELECT_TEMPLATE_STATUS”(这将在第 356 行的 /var/www/clients/client1/web13/web/boutique/includes/Sites/Shop/Template.php 中的 PHP 的未来版本中抛出错误)

原文由 Ruzo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 947
1 个回答

这是一个常见的警告,只要 PHP 检测到使用了未定义的 常量,就会出现这种警告。

下面是一个在 PHP 中定义的常量示例:

 define('PI', 3.14);

下面列出了一些可能导致该问题的情况:

  • 忘记在变量名的开头使用 $ 符号。
   $name = "Aniket";
  echo name; // forgot to add $ before name

上面的代码将抛出: 注意:使用未定义的常量名称 – 假定为 ‘name’ 。因为变量“name”前面没有美元符号,PHP 假定我试图引用一个名为“name”的常量变量。

  • 忘记在字符串周围加上引号。
   echo $_POST[email];

在上面的示例中,我未能在 $_POST 变量 “email” 周围加上引号。此代码将抛出: 注意:使用未定义的常量名称 - 假定为 ‘email’

要解决此问题,我显然必须执行以下操作:

   echo $_POST["email"];

根据 PHP 7.2.x 中已弃用的特性, 您不应使用未定义的常量,因为:

作为不存在的全局常量的不带引号的字符串被视为自身的字符串。

此行为用于发出 E_NOTICE , _但现在将发出 E_WARNING_ 。在 PHP 的下一个主要版本中,将抛出一个错误异常。

仅当您在使用之前声明常量值时,您才能防止这种情况 E_WARNING

在上述问题中,没有定义 MODULE_HEADER_SELECT_TEMPLATE_STATUS

原文由 Aniket Sahrawat 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题