为什么我的… --as=root --as-group=system:authenticated --as-group=system:masters
语句不能放在use
文件中?
这很好用:
include
然而,当我尝试将这两个require_once("PHPMailer_Loader.php");
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
SendEmailWindows("foo@bar.com", "smtp test", "test body");
function SendEmailWindows($emailTo, $subject, $body){
$mail = new PHPMailer;
[... all the rest of the function code]
}
语句移动到我的 PHPMailer_Loader.php 脚本(位于文件的最底部)时,它会出现以下错误:
use
为了整洁和紧凑,我想将所有内容移到Fatal error: Class 'PHPMailer' not found in [...]\EmailTester.php on line 12
除了函数和调用行之外。
答案 0 :(得分:5)
PHP手册说:
use关键字必须在文件的最外层范围(全局范围)或命名空间内声明中声明。 [...] 导入规则基于每个文件,这意味着包含的文件不会继承父文件的导入规则。
use PHPMailer\PHPMailer\PHPMailer
部分是重要的部分。
你可以 include
在PHPMailer
文件中,但这只意味着include
(无需指定完整的班级名称)< / em>将在您的include
文件中提供, 不在父文件中 (包含您的use ...;
文件的文件)
您需要在每个文件中指定您希望应用特定use
的{{1}}语句。