gpt4 book ai didi

PHP 在非静态方法上调用 self

转载 作者:可可西里 更新时间:2023-11-01 13:12:11 25 4
gpt4 key购买 nike

为什么在此示例中对非静态方法的“ self ”调用有效?

class A{

protected function aNonStaticMethod(){
return __class__;
}

public function aEcho(){
echo self::aNonStaticMethod();
}
}

感谢您的解释。

最佳答案

在您的简单示例中,$this 和 self 是可以互换的。但要注意处理继承时解析的不同方法(为了完整性我添加了静态):

class A {
protected function aNonStaticMethod(){
return __class__;
}

public function selfEcho(){
echo self::aNonStaticMethod();
}

public function staticEcho(){
echo static::aNonStaticMethod();
}

public function thisEcho(){
echo $this->aNonStaticMethod();
}
}

class B extends A {
protected function aNonStaticMethod(){
return __class__;
}
}

$b = new B();
$b->selfEcho(); // A
$b->staticEcho(); // B
$b->thisEcho(); // B

关于PHP 在非静态方法上调用 self,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19218182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com