首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PhP构造函数与链化

PhP构造函数与链化
EN

Stack Overflow用户
提问于 2017-09-22 09:47:13
回答 1查看 334关注 0票数 0

最近,我检查了SwiftMailer包,发现这个问题我无法解释:

代码语言:javascript
代码运行次数:0
运行
复制
// #1
$message = new Swift_Message($subject)->setFrom($f)->setTo($t)->setBody($body);

// #2
$message = new Swift_Message($subject);
$message->setFrom($f)->setTo($t)->setBody($body);

// #3
$message = new Swift_Message($subject);
$message->setFrom($f);
$message->setTo($t);
$message->setBody($body);

变体#1来自SwiftMailer文档,不起作用,它提供了一个“意外的parse >‘>”解析错误.这个问题很容易解决,变体#2和#3很好用。

我认为方法链接是PHP中广泛使用的一种技术,我还认为#1是完全有效的。为什么它不能像预期的那样工作呢?

我的PHP是V7.1.1

阿明。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-22 10:10:44

示例一在文档中不是这样写的,类实例化的示例方法链中没有一个是有效的PHP。

相反,文档是这样编写的:

代码语言:javascript
代码运行次数:0
运行
复制
// Create the message
$message = (new Swift_Message())

    // Give the message a subject
    ->setSubject('Your subject')

    // Set the From address with an associative array
    ->setFrom(['john@doe.com' => 'John Doe'])

    // Set the To addresses with an associative array (setTo/setCc/setBcc)
    ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name'])

    // Give it a body
    ->setBody('Here is the message itself')

    // And optionally an alternative body
    ->addPart('<q>Here is the message itself</q>', 'text/html')

    // Optionally add any attachments
    ->attach(Swift_Attachment::fromPath('my-document.pdf'));

注意,类是在括号内实例化的。这允许直接从构造函数链接方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46361706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档