我正在尝试创建一个可以为我处理邮件的自定义类。
这是我的班级(mailerclass.php):
class Mailer {
// Private fields
private $to;
private $subject;
private $message;
// Constructor function
function __construct($to, $subject, $message) {
$to = $to;
$subject = $subject;
$message = $message;
}
// Function to send mail with constructed data.
public function SendMail() {
if (mail($to, $subject, $messagecontent)) {
return "Success";
}
else {
return "Failed";
}
}
}
当我尝试在这里调用它(index.php)时,我得到一个“调用未定义函数SendMail()”消息?
if ($_SERVER['REQUEST_METHOD'] == "POST") {
// Import class
include('mailerclass.php');
// Trim and store data
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);
// Store mail data
if ($validated == true) {
// Create new instance of mailer class with user data
$mailer = new Mailer($to, $subject, $message);
// Send Mail and store result
$result = $mailer.SendMail();
}
为什么会这样?
答案 0 :(得分:1)
点.
用于concatenate
。您使用->
来访问类
$result = $mailer->SendMail();
答案 1 :(得分:1)
您不能使用点调用类方法。您可以使用->
调用类方法(非静态),如:
$result = $mailer->SendMail();
此外,您需要使用$this->
设置属性(如果不是静态的话),请将您的contstructor的内容更改为:
$this->to = $to;
$this->subject = $subject;
$this->message = $message;
同样适合您的mail()
功能:
mail($this->to, $this->subject, $this->messagecontent)
您看到我提到静态几次,如果您想要在班级中访问静态属性或方法,可以使用self::
答案 2 :(得分:0)
.
是一个联系人运营商,要访问类的成员,变量和函数都使用->
运算符
使用以下代码:
$result = $mailer->SendMail();