Por que é possível definir um membro privado em uma instância de objeto, da mesma classe dentro de um objeto?
Alguém pode explicar por que eu sou capaz de definir o membro privado$bar
noTestFoo::getFooInstance()
?
TestFoo::getFoo2Instance()
no entanto, retorna um erro fatal.
Eu sempre presumi que membros privados só deveriam ser acessíveis a partir da mesma instância de objeto em vez da mesma classe de objeto?
<?php
class TestFoo {
private $bar;
public static function getFooInstance()
{
$instance = new TestFoo();
$instance->bar = "To bar or not to bar";
return $instance;
}
public static function getFoo2Instance()
{
$instance = new TestFoo2();
$instance->bar = "To bar or not to bar";
return $instance;
}
public function getBar()
{
return $this->bar;
}
}
class TestFoo2 {
private $bar;
public function getBar()
{
return $this->bar;
}
}
$testFoo = TestFoo::getFooInstance();
echo $testFoo->getBar();
// returns PHP fatal error
//$testFoo2 = TestFoo::getFoo2Instance();
//echo $testFoo2->getBar();
?>