如何在一个声明之外组合此对象“属性列表”?

时间:2012-12-07 04:54:36

标签: php email object

我正在使用Eoghan的PHP Simple Mail脚本来发送电子邮件。我有一个应用程序,它有两个文件字段,一个是可选的。我需要附加两个文件,只有两者都提供。

但对象格式奇怪:

$send   = $mailer->setTo('eoghan@example.com', 'John Smith')
         ->setSubject('Test Message')
         ->setFrom('no-reply@domain.com', 'Domain.com')
         ->send();

我不知道如何将其分解为多行。现在,对于面向对象的事情,我无法理解这一切。

我认为它是这样的?

$send = $mailer->setTo($_TO_EMAIL, $_TO_NAME)
    ->setSubject($_SUBJECT)
    ->setFrom($_FROM_EMAIL, $_FROM_NAME);

// If true, send the mail
if ($my_var) $send .= $mailer->send();

编辑:此外,这种行为/语法是什么叫,所以我可以学习它?

1 个答案:

答案 0 :(得分:1)

这是method chaining的一个例子。每个函数调用(send()除外)都返回对$mailer对象的引用。它在功能上等同于:

$mailer->setTo('john@example.com', 'John Smith');
$mailer->setSubject('Test Message');
$mailer->setFrom('no-reply@domain.com', 'Domain.com');
$send = $mailer->send();

要回答你的问题,最后应该是这样的:

if ($my_var) $send = $mailer->send();