发送电子邮件给一堆用户类

时间:2011-06-22 12:53:54

标签: php

class emailer
{
private $sender;
private $recipients;
private $subject;
private $body;
function __construct($sender)
{
$this->sender = $sender;
$this->recipients = array();
}
public function addRecipients($recipient)
{
array_push($this->recipients, $recipient);
}
public function setSubject($subject)
{
$this->subject = $subject;
}
public function setBody($body)
{
$this->body = $body;
}
public function sendEmail()
{
foreach ($this->recipients as $recipient)
{
$result = mail($recipient, $this->subject, $this->body,
"From: {$this->sender}\r\n");
if ($result) echo "Mail successfully sent to
{$recipient}<br/>";
}
}
}

为什么代码写这个函数?

function __construct($sender)
    {
    $this->sender = $sender;
    $this->recipients = array();
    }
我可以删除吗?谢谢。

2 个答案:

答案 0 :(得分:1)

根据您对问题的评论......

该功能称为constructor。看看它的形式:

function __construct($sender)
{
  $this->sender = $sender;
  $this->recipients = array();
}

通过它正在做的事情,你看到的第一件事是它有一个标准化的名称。在这种情况下,语言保留__construct以指定此函数用于构建此类描述的对象的实例。

接下来,请注意它接受一个参数。这意味着当您创建类的实例时,您将为该实例提供参数。所以当你创建一个实例时,你会做这样的事情:

$obj = new emailer($someSender);

您在此处所做的是创建emailer的实例并为其提供sender参数。对new的调用是调用构造函数的。 (基本上,它是“构建”emailer的“新”实例。)

构造函数内部,它正在做两件事:

  1. 将对象的sender属性设置为$someSender调用中提供的new
  2. recipients属性初始化为新数组。
  3. 最后,请注意,此函数不会返回任何内容。它是由语言保留的标准化函数,其含义是它“返回”的是该类的新实例。在上面的示例调用中,此实例设置为$obj

答案 1 :(得分:0)

以下函数称为constuctor,并且可以使用此方法轻松初始化电子邮件对象(通过编写新的类名,然后编写构造参数)。

示例:

//One can use the constructor to create a new emailer
$emailer = new emailer("example@example.com");
//Do something with emailer ...