Ben PHP 5.3 kararlı sürümü kullanıyorum ve bazen çok tutarsız davranışlar karşılaşabilirsiniz. Bildiğim kadarıyla miras tüm nitelikleri ve yöntemlerini bildiğimiz gibi (özel, kamu ve korumalı) süper sınıfta çocuk sınıfı geçirilir.
class Foo
{
private $_name = "foo";
}
class Bar extends Foo
{
public function getName()
{
return $this->_name;
}
}
$o = new Bar();
echo $o->getName();
//Notice: Undefined property: Bar::$_name in ...\test.php on line 11
Foo :: $ _name niteliği "kamu" tanımlanan Ama ne zaman hata vermez. PHP OO kurallarını kendi vardır??
Teşekkürler
Edit: Now all things are clear. Actually I was thinking in "inheritance" a new class is created and inherits all members independent from its ancestor. I didn't know "accessing" rules and inheritance rules are the same.
Edit According to your comments this snippet should give an error. But it is working.
class Foo
{
private $bar = "baz";
public function getBar()
{
return $this->bar;
}
}
class Bar extends Foo
{}
$o = new Bar;
echo $o->getBar(); //baz