PHP中SELF的问题
本文介绍了PHP中SELF的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
这里的答案为什么是show:color,而不是show:red,难道是因为self写在Fruit类中就只能指向本类哪怕继承也不改变吗?
解决方案
self 指向基类 Fruit,也就是
__CLASS__
的类static、$this 指向最终new的类 Apple
以下这个类 你就明白了:
class Base {
public function log() {
// 目标类,输出:A/C
echo static::class;
// 基类,输出:Base
//echo __CLASS__;
echo self::class;
}
}
class A extends Base {
public function log1() {
echo self::class;
}
}
class C extends A {
public function log2() {
echo self::class;
}
}
$a = new A();$c = new C();
$a->log(); //输出 A Base
$c->log(); //输出 C Base
$c->log1(); //输出 A
$c->log2(); //输出 C
这篇关于PHP中SELF的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文