1

我正在开发一个涉及制作电子邮件类的 PHP 项目。我有 Java 背景,似乎无法弄清楚在对象上调用方法的语法。

我将代码缩写:

文件 1:

class Emails {

protected $to;

public function Emails ($_to) {
 //constructor function. 
  $to = $_to;
}

public function getTo () {
  return $to;
}

文件 2:

require("../phpFunctions/EmailClass.php");//include the class file
$email = new Emails("<email here>");
echo $email->getTo();//get email and return it

但是,getTo() 要么什么都不返回,要么,如果我将返回值更改为 $this->$to,我会收到“空字段”错误。

请帮助我了解方法在这种情况下的工作原理(并原谅双关语......)。在 Java 中,您只需调用 email.getTo()...

4

3 回答 3

2
public function __construct ($_to) {
  $this->to = $_to;
}    
public function getTo () {
  return $this->to;
}
于 2012-08-24T20:42:58.000 回答
0

为了复制和粘贴:

class Emails {

protected $to;

public function __construct($_to) {
 //constructor function. 
  $this->to = $_to;
}

public function getTo () {
  return $this->to;
}

}

使用$this范围将获得在类定义中定义的变量。

于 2012-08-24T20:45:19.833 回答
0

在 PHP 中,变量不是实例范围的,除非前缀为$this

public function getTo () {
  // $to is scoped to the current function
  return $to;
}

public function getTo () {
  // Get $to scoped to the current instance.
  return $this->to;
}
于 2012-08-24T20:45:27.723 回答