Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
失败:对PHPmailer使用静态函数_Php_Function_Static_Phpmailer_Sendmail - Fatal编程技术网

失败:对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函数,就像在其他页面上一样。谢谢。欢迎。谢谢欣赏。