我的网站托管商很快就会将所有帐户从PHP 7.0切换到PHP 7.2。所以我安装了当前WordPress安装的克隆,以便用PHP 7.2进行测试。当我激活PHP 7.0时,一切正常。但是,当我切换到PHP 7.2时,我从其中一个插件中收到了一个奇怪的错误消息。
Warning: Use of undefined constant TABBER_TABS_DIR - assumed 'TABBER_TABS_DIR' (this will throw an Error in a future version of PHP) in /home/xeccbike/public_html/testing/wp-content/plugins/tabber-tabs-widget/tabber-tabs.php on line 31
30: / Set constant path to the plugin directory.
31: define( TABBER_TABS_DIR, plugins_url('tabber-tabs-widget/'));
32:
33: // Load Language
34: load_plugin_textdomain('tabber-tabs-widget', false, TABBER_TABS_DIR . 'language');
有谁知道那可能是什么?任何提示都表示赞赏。感谢
AJ
答案 0 :(得分:3)
我也有。我只是将常量放在单引号中,如警告信息所示(在你的情况下,第31行将是define( 'TABBER_TABS_DIR', plugins_url('tabber-tabs-widget/'));
),这解决了它。
答案 1 :(得分:0)
让我们看看这段代码:
hash = {}
hash["other_hash"] = {}
hash["other_hash"]["value"] = 5
显然你可以在这里看到不带引号的字符串测试。在PHP 7.1中,脚本的输出将是:
$string = test;
if ($string == 'test') {
echo "This is test string";
}
但在PHP 7.2中输出为:
Notice: Use of undefined constant test - assumed 'test' in ...
This is test string
如您所见,这不是一个很大的改变(通知已更改为警告),但在PHP 8中,它可能会导致错误。
这种变化的主要原因并不是停止对不带引号的字符串的支持,而是为了避免在输入某些PHP关键字时出现严重问题。
我建议我建议阅读this article。也许有用