为什么“使用”语句不能包含在包含文件中?

时间:2018-01-08 00:26:15

标签: php

为什么我的… --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 除了函数和调用行之外。

1 个答案:

答案 0 :(得分:5)

PHP手册说:

  

use关键字必须在文件的最外层范围(全局范围)或命名空间内声明中声明。 [...] 导入规则基于每个文件,这意味着包含的文件不会继承父文件的导入规则。

use PHPMailer\PHPMailer\PHPMailer部分是重要的部分。

可以 includePHPMailer文件中,但这只意味着include (无需指定完整的班级名称)< / em>将在您的include文件中提供, 不在父文件中 (包含您的use ...;文件的文件)

TL;博士

您需要在每个文件中指定您希望应用特定use的{​​{1}}语句。