簡體   English   中英

無法重新聲明PHPMailer類

[英]Cannot redeclare class PHPMailer

這是令人困惑的,因為我已經檢查了其他答案並應用了它們,但我仍然會遇到這個致命的錯誤。

我在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我應該沒有這個問題。

但是我願意...

任何幫助贊賞。

PHPMailer實例已經在wordpress中工作。 您不需要再次包含庫。 請查看此鏈接以供參考

https://codex.wordpress.org/Plugin_API/Action_Reference/phpmailer_init

我認為這可能是一個比命名空間更簡單的問題: class_exists采用默認為true的第二個autoload參數,這意味着如果類尚未加載,它將自動嘗試加載該類,並且可以在include_path找到它。 最終結果是,通過將該參數保留為其默認值,您將有效地加載它兩次,因此重新聲明錯誤。 試試這個:

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

在其他新聞中: 使用作曲家 它為您管理所有課程加載。 即使是瑣碎的腳本也是值得的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM