如果我错误陈述某些内容或使用错误的字词,我道歉。但我试图找出如何在对象上使用if语句。
这很好用,据我了解,@抑制错误。
if (@mail("$receiver_email", "$subject", "$message", "$headers")) { }
但是如果我这样做就失败了:
if (@$mail->send('email@gmail.com', "$receiver_email", "$subject", "$message")) {}
具有讽刺意味的是,电子邮件通过但是IF失败了。如何修复IF语句以使其正常工作?
答案 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()
方法返回成功值。