Почему можно установить закрытый член для экземпляра объекта того же класса внутри объекта?

Кто-нибудь может объяснить, почему я могу установить частный член$bar вTestFoo::getFooInstance()?

TestFoo::getFoo2Instance() однако возвращает фатальную ошибку.

Я всегда предполагал, что закрытые члены должны быть доступны только из одного экземпляра объекта, а не из одного класса объекта?

<?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();
?>

Ответы на вопрос(1)

Ваш ответ на вопрос