Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法重新声明类PHPMailer_Php_Wordpress_Class_Phpmailer - Fatal编程技术网

无法重新声明类PHPMailer

无法重新声明类PHPMailer,php,wordpress,class,phpmailer,Php,Wordpress,Class,Phpmailer,这是令人困惑的,因为我已经检查了其他答案并应用了它们,但我仍然不断得到这个致命错误 我在wordpress中使用phpmailer,代码如下: if (!class_exists('PHPMailer')) { require_once(ABSPATH . 'wp-content/uploads/phpmailer/_lib/class.phpmailer.php'); } 但是,该页面未加载,我得到错误信息: PHP致命错误:无法在中重新声明类PHPMailer (我还尝试了类_ex

这是令人困惑的,因为我已经检查了其他答案并应用了它们,但我仍然不断得到这个致命错误

我在wordpress中使用phpmailer,代码如下:

if (!class_exists('PHPMailer')) {
    require_once(ABSPATH . 'wp-content/uploads/phpmailer/_lib/class.phpmailer.php');
}
但是,该页面未加载,我得到错误信息:

PHP致命错误:无法在中重新声明类PHPMailer

(我还尝试了类_exists('PHPMailer',false)),但这也产生了相同的错误。)

就我所见,通过检查类不存在,然后使用require_一次,我不应该有这个问题

但我确实


感谢您的帮助。

我认为这可能是一个比名称空间更简单的问题:使用第二个默认为true的
自动加载
参数,这意味着如果尚未加载类,它将自动尝试加载该类,并且可以在
include\u路径中找到该类。最终的结果是,如果将该参数保留为其默认值,则实际上会加载它两次,因此会出现重新声明错误。请尝试以下方法:

if (!class_exists('PHPMailer', false)) {
    require_once(ABSPATH . 'wp-content/uploads/phpmailer/_lib/class.phpmailer.php');
}

其他新闻:。它为您管理所有的类加载。即使是微不足道的脚本也值得使用。

PHPMailer实例已经在wordpress中运行。您不需要再次包含库。请检查此链接以供参考


在代码中的某个地方已经有一个名为
PHPMailer
的类,它不必位于包含的同一文件中,只需类的名称相同即可。出现错误的原因是类名必须是唯一的。你能把你所有的代码都搜索一遍吗?PS:名称空间用于避免类名中的这些冲突。如果注释掉提供的代码行,会发生什么情况?您提供的代码行下面是什么?您正在使用哪些插件?一些插件正在创建此类问题。您可能已经为邮件使用了多个插件。
class\u exists()
可能会对名称空间返回意外的假阴性。看看这个。例如,如果您的代码位于命名空间
Foo
中,那么您的代码将检查类
Foo\PHPMailer
是否存在。尝试使用
class\u exists('\\PHPMailer')
这将是您了解名称空间=)的日子,谢谢!我在wp包含中“发现”了PHPMailer并链接到该版本,而不是我上传的“额外”版本。现在一切都好了