当我看到'自我'时,会自动想到静态方法。最近我被指出自我取决于背景。就像'parent'一样,它也可以调用静态方法。考虑这个例子:
error_reporting(-1);
class A
{
public $var = 1;
public function __construct($n)
{
$this->var = $n;
self::foo();
}
public function foo()
{
echo $this->var;
}
}
$obj = new A(5);
在没有错误的情况下操作,并且在foo $方法中,这是可用的。 有人可以告诉我一些指南,详细解释如何通过自我和父母解决呼叫?
答案 0 :(得分:2)
$this
$是对当前对象的引用,而self
是对使用它的类的引用。
示例 - 以下代码的结果为:(B::func)(A::func)
。
class A {
function call() {
$this->func();
self::func();
}
function func() {
echo '(A::func)';
}
}
class B extends A {
function func() {
echo '(B::func)';
}
}
$b = new B();
$b->call();