这很令人困惑,因为我已经检查了其他答案并应用了它们,但我仍然会遇到这个致命的错误。
我在wordpress中使用phpmailer并拥有以下代码:
if (!class_exists('PHPMailer')) {
require_once(ABSPATH . 'wp-content/uploads/phpmailer/_lib/class.phpmailer.php');
}
然而,该页面未加载,我收到错误:
PHP致命错误:无法在
中重新声明类PHPMailer
(我也试过class_exists('PHPMailer',false))但是这也产生了同样的错误。)
据我所知,通过检查类不存在然后使用require_once我不应该有这个问题。
但我确实......
任何帮助表示感谢。
答案 0 :(得分:2)
PHPMailer实例已在wordpress中工作。您不需要再次包含库。请查看此链接以供参考
https://codex.wordpress.org/Plugin_API/Action_Reference/phpmailer_init
答案 1 :(得分:0)
我认为这可能是一个比命名空间更简单的问题:class_exists
需要第二个autoload
参数,默认为true,这意味着它会自动尝试加载该类,如果它是'尚未加载,可以在include_path
中找到它。最终结果是,通过将该参数保留为其默认值,您将有效地加载它两次,因此重新声明错误。试试这个:
if (!class_exists('PHPMailer', false)) {
require_once(ABSPATH . 'wp-content/uploads/phpmailer/_lib/class.phpmailer.php');
}
其他新闻:use composer。它为您管理所有课程加载。即使是琐碎的脚本也是值得的。