СБОЙ: использование статических функций с PHPmailer - PullRequest
0 голосов
/ 29 августа 2018

Я хочу использовать статическую функцию, когда я хочу, чтобы класс Mail запускался на нескольких других страницах и ссылался на эту. Приведенный ниже код работает как написано (успешно отправляет электронное письмо), пока я не добавлю "Class MAIL Public ... () {", теперь он не работает.

Может кто-нибудь сказать мне, что я делаю не так?

<?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!";
  } 
    }
    }

  ?>

1 Ответ

0 голосов
/ 29 августа 2018

Статические функции должны вызываться с именем класса.

Если вы создаете функцию sendMail() внутри класса Mail, то к ней нужно обращаться с помощью 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();

Проверьте использование ключевого слова static в ООП.

...