在OOP PHP中变量$a和变量$this->a有什么不同?


What is different between variable $a and variable $this->a in OOP PHP?

变量$a和变量$this->a在OOP PHP中有什么不同?

class A{
 public function example(){
  $this->a = "Hello A";
  $a = "Hello A";
 }
}

$this->a代表一个类变量,可以在类范围内的任何地方访问,而$a只能在函数本身中使用。

$this伪变量。当从对象上下文中调用方法时,此伪变量可用。$this是对调用对象的引用(通常是方法所属的对象,但如果方法是从次要对象的上下文中静态调用的,则可能是另一个对象)。

参考PHP手册

一个小代码示例来说明Evan的回答

$myA = new A();
$myA->example();
$myA->test();
class A{
 private $a;
 public function __construct() {
  $this->a = 'Hello A';
 public function example(){
  $a = 'Hello A again';
  echo $this->a;//print 'Hello A'
  echo $a;//print 'Hello A again'
 }
 public function test() {
  echo $this->a;//print 'Hello A'
  echo $a;//E_NOTICE : type 8 -- Undefined variable: a
 }
}