// Вопрос в следующем... Допустим у нас есть простенький класс с protected переменными:
class MyVariable
{
protected $nums;
protected $name;
protected $id;
}
// и есть наследование
class My extends MyVariable {
private static $_my;
public static function get() {
if(self::$_my===null) self::$_my=new self;
return self::$_my;
}
public function __construct()
{
$this->nums = 3;
$this->name = "test";
$id = 132;
}
}
// Ну и так создадим экземпляр
$my = new My;
Вобщем, если вызвать print_r($my); то он покажет массив примерно типа:
object array (
[nums:protected] => 3,
[name:protected] => test,
[id:protected] => 132
)
НО! Если я сделаю так:
$my->nums или My::get()->nums он мне отдаст fatal, что я типо пытаюсь protected метод вызвать, т.е. не конает.
Чтож тогда print_r показывает значения? Но вопрос не в этом, пофиг, мне и надо чтобы они видны были, я так понимаю print_r их показывает т.к. при наследование класса эти переменные должны быть доступны для чтения/наследования. (ну мое понимание)
Вопрос в другом, как отобразить мне My::get()->nums, если я сделаю $nums - public то его можно будет изменить, ну тупо даже My::get()->nums = 'blablabla', что совершенно не допустимо.
Или тут только через функцию типа геттера?
_____________
Голодный дух - хуже пьяного дембеля =)