Dan*_*nel 3 php namespaces phpmailer
我有以下项目文件夹和文件:(请注意,我想将我的类与库分开(例如PHPMailer,HTMLPurifier等))

在我的Register.php文件中,我有Register类:
namespace Classes\Register;
class Register
{
public function register()
{
// ...
$m = new PHPMailer;
// send email
}
}
Run Code Online (Sandbox Code Playgroud)
所以,在我的Register类(位于classes /目录中)中,我想使用PHPMailer类(位于上面的一个目录,相对于Register.php文件,进入libs/PHPMailer).如何将PHPMailer类包含在Register.php文件中?
我试过了:
$m = new \PHPMailer; // to use the class from the global scope, but it doesn't work.
Run Code Online (Sandbox Code Playgroud)
或者,如果我包含PHPMailerAutoload.php,如下所示:
namespace Classes\Register;
require '../libs/PHPMailer/PHPMailerAutoload.php';
// and then into register() method:
$m = new PHPMailer;
Run Code Online (Sandbox Code Playgroud)
我收到一条错误说明: Fatal error: Class 'Classes\Register\PHPMailer' not found
有任何想法吗?非常感谢!
你没有说明为什么这不起作用,因为它是正确的:
$m = new \PHPMailer;
Run Code Online (Sandbox Code Playgroud)
或者,您可以将类导入到您自己的命名空间中:
use PHPMailer;
$m = new PHPMailer;
Run Code Online (Sandbox Code Playgroud)
关于班级名称,它基本相同.
如果两个版本都不起作用,则会出现其他问题.