可能重复:
PHP:self vs. $this
我发现我可以通过 $this:: 前缀调用类方法。例子:
class class1 {
public function foo()
{
echo "1";
}
public function bar()
{
$this::foo();
//in this example it acts like $this->foo() and displays "2"
//using self::foo() displays "1"
}
}
class class2 {
public function foo()
{
echo "2";
}
public function bar()
{
class1::bar();
}
}
$obj = new class2();
$obj->bar(); // displays "2"
class1::bar(); // Fatal error
我想知道使用 $this-> 和 $this:: 前缀调用方法的区别是什么。
ps:在这个链接中有一个关于 $this->foo() 和 self::foo() 的差异的页面: When to use self over $this?