如何从 PHP 中的另一个 class 创建一个 class 的对象?

How to create an object of a class from another class in PHP?

我一直在尝试在另一个 class 中创建一个 PHPMailer() class 的对象,但它不起作用。

我已经包含了我的主 index.php 文件中的所有文件

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;

require "assets/PHPMailer/src/PHPMailer.php";
require "assets/PHPMailer/src/Exception.php";
require "assets/PHPMailer/src/SMTP.php";

这些已成功导入,因为如果我声明

 $mail = new PHPMailer();

然后在这个文件中创建邮件对象。

但是,我想在另一个 class 的特定功能中使用此功能。我有一个 class Projects 并且在其中定义了一个 public 静态函数 do_request() 向数据库发送 SQL 查询。这个函数工作得很好,但现在我想在调用这个函数时发送一封电子邮件。为此,我在同一个 class 中创建了一个新的 public 函数 send_email() 并且我从 public 静态函数 do_request() 调用它。在 send_email() 函数中声明

 $mail = new PHPMailer();

代码崩溃,不再创建我的对象。谁能告诉我这里可能出了什么问题?

任何时候遇到崩溃,首先要查看的是您的网络服务器的错误日志。

在没有您的实际代码或任何错误消息的情况下,我们只能猜测原因。

如果你在一个函数中有那些 require 语句,那么你第二次调用它会失败,因为你正在加载重复的 类。这也是学习使用 composer 的一个很好的理由,因为这意味着您不必担心手动加载 类。