【问题标题】:PHP After extending a class what name do I usePHP 扩展一个类后我用什么名字
【发布时间】:2018-06-21 09:49:27
【问题描述】:

我已经扩展了 PHPMailer,所以我可以将邮件保存到已发送的文件夹中。 我用过:

class Mailer extends PHPMailer {

我还能用吗:

$mail = new PHPMailer;

或者我应该使用:

$mail = new Mailer;

【问题讨论】:

  • 如果你想使用你的扩展类,你必须使用新名称。
  • 您必须使用扩展父类的类。你必须使用$mail = new Mailer;
  • 如果你执行$mail = new PHPMailer;它只加载PHPMailer类。如果你打电话给$mail = new Mailer;,那么它会调用 Mailer+PHPMailer 类
  • @AbdullaNilam 怎么样?这个问题是关于访问父母变量的扩展类。

标签: php phpmailer extend


【解决方案1】:

您应该使用新名称。当您扩展一个类时,它不会更改您正在扩展的类,它实际上将该类复制到您的新类并允许您添加到它。

$mail = new Mailer();

我建议查找 PHP 的基本 OOP,因为这将被描述。来自快速谷歌搜索this came up,看起来不错。

正如@Synchro 所指出的,您应该先查看PHP docs for inheritance,然后再查看其他指南。

【讨论】:

  • 第一个停靠港应始终为the PHP docs
  • 谢谢,只是还是让我用原来的类。
【解决方案2】:

你的问题不清楚。

您是否使用命名空间、use 语句和自动加载?如果你不这样做,你显然应该使用新的类名,但如果你这样做,你可以使用像这样的别名:

use Mailer as PHPMailer;
$mail = new PHPMailer;

仍然使用旧名称

【讨论】:

    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2017-09-22
    • 2011-11-17
    • 1970-01-01
    • 2011-05-14
    相关资源
    最近更新 更多