php - PHP:成员函数无法访问成员变量
问题描述
我正在试验 PHP 类,并创建了这个简单的类:
<?php
/* email.php
Returns a wrapper object that handles the sending of an email
*/
class Email
{
private $message = "";
private $subject = "";
private $to = "";
public function setMessage(string $newMessage) {
$this->$message = $newMessage;
}
public function setSubject(string $newSubject) {
$this->$subject = $newSubject;
}
public function setRecipient(string $newRecipient) {
$this->$to = $newRecipient;
}
public function send() {
mail($this->$to, $this->$subject, $this->$message);
}
}
$email = new Email();
$email->setRecipient('test@gmail.com');
$email->setSubject('A message');
$email->setMessage('Does this work?');
$email->send();
?>
但是,当我运行它时(我通过前端的 fetch 请求调用此脚本),我收到以下错误:
Notice: Undefined variable: to in /home/jack/Projects/test/php/email.php on line 24
Notice: Undefined variable: subject in /home/jack/Projects/test/php/email.php on line 20
Notice: Undefined variable: message in /home/jack/Projects/test/php/email.php on line 16
Notice: Undefined variable: to in /home/jack/Projects/test/php/email.php on line 28
Notice: Undefined variable: subject in /home/jack/Projects/test/php/email.php on line 28
Notice: Undefined variable: message in /home/jack/Projects/test/php/email.php on line 28
我在这里做错了什么?
解决方案
那是因为你在做$this->$subject
,你的意思是$this->subject
。
更全面的答案:
PHP 允许您拥有自定义变量名称。例如你可以设置
$i = 0;
$var$i = "abc";
然后$var0
将包含“abc”。
推荐阅读
- tsql - 使用 SQL 从字符串数据中提取文本(处理空值)
- reactjs - 使用 highcharts 移除事件监听器
- python - Logistic回归的多个问题(1.所有CV值具有相同的分数,2.分类报告和准确性不匹配)
- flutter - Flutter:创建一个没有默认构造函数的类的新实例并更改一些属性
- amazon-web-services - EMR Presto 6.3.0 未正确利用内存,因此“不同”查询速度较慢
- python - sqlalchemy 过滤少数具有不同数据类型的列
- c# - Selenium:从电子邮件文本字段/文本框中获取字符串
- java - 如何修改现有的jar文件?
- c++ - 如何动态优化多字段比较中的字段顺序
- cron - crontab 没有删除文件夹中的文件