你能在对象上使用IF语句吗?

时间:2013-02-14 00:43:31

标签: php

如果我错误陈述某些内容或使用错误的字词,我道歉。但我试图找出如何在对象上使用if语句。

这很好用,据我了解,@抑制错误。

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

但是如果我这样做就失败了:

if (@$mail->send('email@gmail.com', "$receiver_email", "$subject", "$message")) {}
具有讽刺意味的是,电子邮件通过但是IF失败了。如何修复IF语句以使其正常工作?

2 个答案:

答案 0 :(得分:0)

首先:尽量避免使用@,这通常是一种不好的做法..

为什么if失败并不依赖于发送是否成功。只有当mail()类中的$mail函数实际返回某些内容(如真或假)时,您才能对此做一些事情。

由于这不是一个内置的PHP类,你应该问你班级的作者(或者你自己,如果你写的)在成功时返回true。

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

答案 1 :(得分:0)

首先,不要使用@。这是不好的做法,更好地处理使用错误处理程序;另见:Error logging, in a smooth way

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

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

如果函数没有返回值,则默认为null并且评估为false,这就是IF"失败的原因"。

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