誰かが私に説明してもらえますか、なぜPHPで次のことを実行できるのですか?たとえば、C#またはJavaでは実行できません:
Class A {
protected $a = 'Howdy!';
}
Class B extends A {
public function howdy() {
$created = new A();
echo $created->a; <----- This is legal due to per-class visibility
}
}
$b = new B();
echo $b->howdy(); <----- Hence, no fatal error here
この動作はここで指定されているようですが、この背後にある根本的な理由を理解できません (私の考えでは、明確な理由がなければ、per-class
可視性の代わりに可視性を単純に実装することはできませんper-instance
)。