我在php中有这些错误,v7.2但是E_WARNING在使用php时看不到任何错误v7.1。
如何解决以下错误?
/web13/web/boutique/includes/Sites/Shop/NavigationHistory.php,第39行[2018年1月12日22:44:20美国/多伦多] PHP警告:使用未定义的常量MODULE_HEADER_SELECT_TEMPLATE_STATUS-假定为'MODULE_HEADER_SELECT_TEMPLATE_STATUS'(此操作将在第356行的/var/www/clients/client1/web13/web/boutique/includes/Sites/Shop/Template.php中引发错误)
Ani*_*wat 10
这是常见的警告,每当PHP检测到未定义常量的使用时,就会发生此警告。
这是在PHP中定义的常量示例:
define('PI', 3.14);
Run Code Online (Sandbox Code Playgroud)
下面是一些可能导致此问题的情况的列表:
忘记在变量名的开头使用$符号。
$name = "Aniket";
echo name; // forgot to add $ before name
Run Code Online (Sandbox Code Playgroud)
上面的代码将抛出:注意:使用未定义的常量名称-假定为'name'。因为变量“名称”前没有美元符号,所以PHP假定我正在尝试引用一个名为“名称”的常量变量。
忘记将引号放在字符串周围。
echo $_POST[email];
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,我未能在$_POST变量两边加上引号“email”。该代码将引发:注意:使用未定义的常量名称-假定为'email'。
要解决此问题,我显然必须执行以下操作:
echo $_POST["email"];
Run Code Online (Sandbox Code Playgroud)根据PHP 7.2.x中不推荐使用的功能,您不应使用未定义的常量,因为:
不存在的全局常量不带引号的字符串将视为其自身的字符串。
此行为曾经发出E_NOTICE,但现在将发出E_WARNING。在PHP的下一个主要版本中,将引发Error异常。
E_WARNING只有在使用常量之前声明该常量,才可以防止这种情况。
在以上问题中,MODULE_HEADER_SELECT_TEMPLATE_STATUS未定义。
此外,对于那些不熟悉 wordpress 插件开发并且似乎无法弄清楚在使用之前定义“常量”意味着什么的人......
以下是将引发错误的示例:
add_action('wp_enqueue_scripts', myprefix_load_styles);
Run Code Online (Sandbox Code Playgroud)
像在钩子中那样直接声明一个函数是产生这样的错误的一种方式。反而:
add_action('wp_enqueue_scripts', 'myprefix_load_styles');
Run Code Online (Sandbox Code Playgroud)
请注意,函数名称现在位于引号内。如果那是您的情况,那应该可行。
| 归档时间: |
|
| 查看次数: |
38827 次 |
| 最近记录: |