1

如果我陈述错误或使用了不正确的术语,我深表歉意。但我试图弄清楚如何在对象上使用 if 语句。

这工作得很好,据我了解,@ 抑制错误。

if (@mail("$receiver_email", "$subject", "$message", "$headers")) { }

但是,如果我这样做,它会失败:

if (@$mail->send('email@gmail.com', "$receiver_email", "$subject", "$message")) {}

具有讽刺意味的是,电子邮件通过但 IF 失败。如何修复 IF 语句以使其正常工作?

4

2 回答 2

0

第一:尽量避免@,这通常是一种不好的做法..

为什么 if 失败不取决于发送是否成功。只有当mail()任何类$mail中的函数实际上返回一些东西(如真或假)时,你才能用它做一些事情。

由于这不是一个内置的 PHP 类,您应该要求您的类的作者(或您自己,如果您编写了它)在成功时返回 true。

简而言之:这不是你可以解决的,编写send函数的人可以解决这个问题。

于 2013-02-14T00:46:31.360 回答
0

首先,不要使用@. 这是不好的做法,最好使用错误处理程序来处理;另请参阅:错误记录,以流畅的方式

从你的代码我只能猜测你的代码是这样的:

public function send($from, $to, $subject, $message)
{
    // your code here
}

如果该函数没有返回值,则默认为null并且计算false结果为 IF “失败”的原因。

您应该从您的send()方法返回一个成功值。

于 2013-02-14T00:46:42.213 回答