【发布时间】:2015-09-18 14:00:35
【问题描述】:
有人能解释一下为什么我会得到如下结果吗? (看看 cmets)。
class A {
public function foo() { // foo from B
//private function foo() { // foo from A
echo "foo from A</br>";
}
public function test() {
$this->foo();
}
}
class B extends A {
public function foo() {
echo "foo from B</br>";
}
}
$b = new B();
$b->test();
我不应该总是得到“foo from B”而“this”指向 B 类对象吗?
【问题讨论】:
-
你得到了什么结果?当我在这里运行脚本时,输出是
foo from B</br>,正如预期的那样。 -
如果 'foo()` 函数通过 'protected' 或 'public' 限定符对子类可用,那么它会按预期工作。但是,它会在接口或抽象类中明确。在之前的情况下,
foo()是private,那么您将不会在任何可用的地方提及它。
标签: php