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();
}
我可以删除吗?谢谢。
答案 0 :(得分:1)
根据您对问题的评论......
该功能称为constructor。看看它的形式:
function __construct($sender)
{
$this->sender = $sender;
$this->recipients = array();
}
通过它正在做的事情,你看到的第一件事是它有一个标准化的名称。在这种情况下,语言保留__construct
以指定此函数用于构建此类描述的对象的实例。
接下来,请注意它接受一个参数。这意味着当您创建类的实例时,您将为该实例提供参数。所以当你创建一个实例时,你会做这样的事情:
$obj = new emailer($someSender);
您在此处所做的是创建emailer
的实例并为其提供sender
参数。对new
的调用是调用构造函数的。 (基本上,它是“构建”emailer
的“新”实例。)
构造函数内部,它正在做两件事:
sender
属性设置为$someSender
调用中提供的new
。recipients
属性初始化为新数组。最后,请注意,此函数不会返回任何内容。它是由语言保留的标准化函数,其含义是它“返回”的是该类的新实例。在上面的示例调用中,此实例设置为$obj
。
答案 1 :(得分:0)
以下函数称为constuctor,并且可以使用此方法轻松初始化电子邮件对象(通过编写新的类名,然后编写构造参数)。
示例:
//One can use the constructor to create a new emailer
$emailer = new emailer("example@example.com");
//Do something with emailer ...