失败:对PHPmailer使用静态函数
当我希望邮件类在其他几个页面上运行并链接到此页面时,我想使用静态函数。下面的代码可以正常工作(成功发送电子邮件),直到我添加了“类邮件公共…”({),现在它不工作了 谁能告诉我我做错了什么失败:对PHPmailer使用静态函数,php,function,static,phpmailer,sendmail,Php,Function,Static,Phpmailer,Sendmail,当我希望邮件类在其他几个页面上运行并链接到此页面时,我想使用静态函数。下面的代码可以正常工作(成功发送电子邮件),直到我添加了“类邮件公共…”({),现在它不工作了 谁能告诉我我做错了什么 <?php require '../PHPMailer/PHPMailerAutoload.php'; class Mail { public static function sendMail() { $mail = new PHPMailer; $mail->isSMTP
<?php
require '../PHPMailer/PHPMailerAutoload.php';
class Mail {
public static function sendMail() {
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'memphis@gmail.com';
$mail->Password = '******';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('Urban@yahoo.com');
$mail->addAddress('memphis@gmail.com');
$mail->Subject = 'Test Mail 5';
$mail->Body = 'This is Test Mail';
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
}
}
?>
应使用类名调用静态函数 如果在类
Mail
中创建函数sendMail()
,则必须使用Mail::sendMail()
访问该函数
考虑下面的例子
class Example
{
public static function exampleFunction(){
// Some Code Here
}
public function testFunction(){
// Some Code Here
}
}
// Accessing Non-static function
$exampleClass = new Example;
$exampleClass->testFunction();
// Accessing Static function
Example::exampleFunction();
检查OOP中关键字的使用。当您尝试时会发生什么?它会抛出任何错误吗?您尝试在哪里使用sendMail?目前,我没有看到任何明显的语法错误,因此更多信息会有所帮助。不,它只是一个空白页,没有发送电子邮件或评论。但是如果我取消sendMail功能,让它从h$=新的Phpmailer然后它可以重新工作如果它是一个空白的白色页面,请检查服务器错误日志中的错误消息。空白页面通常隐藏一个通用的500错误,日志应该会提供更多信息。它用于提供500代码,但在修复所有服务器端错误后,它工作正常。因此,我继续下一步添加了静态函数操作,现在没有错误,也没有发送。只有黑色页面。当我删除静态函数时,它才重新工作。您是如何调用静态函数的?我使用Mail::send Mail()我希望访问页面上的函数。我是否也需要将其包含在测试页面中才能使其工作?我只是尝试用Mail::send…替换末尾的if语句,但仍然没有帮助:(不,您不需要更改if语句。但您只需要调用
sendMail()
类外函数,即您正在测试的页面上的函数。谢谢。测试页面上的sendMail()我错过了,因为我完全忘记了在测试页面上重新包含send函数,就像在其他页面上一样。谢谢。欢迎。谢谢欣赏。