Почему несмотря на то, что переменная объявлена защищенной, она может меняться другим экземпляром класса? Код (PHP): class myClass { protected $a=1; public function changeValue($obj) { $obj->a = 2; } public function printValue() { print "Value: {$this->a} "; } } $obj_one = new myClass(); $obj_two = new myClass(); $obj_one->changeValue($obj_two); $obj_two->printValue(); Выводится значение 2. Т.е. внутри первого экземпляра класса, поменялось защищенное свойство второго экземпляра класса.
Re: privite свойство меняется другим объектом-почему (+приме Защищённое (protected) - может, приватное (private) - нет
Re: privite свойство меняется другим объектом-почему (+приме в заголовке приватный, в коде защищенный. вы уж повнимательнее. экземпляры класса и всех классов наследованных от этого класса будут видеть защищенные свойства объектов этого класса. ну или терминами мануала:
Re: privite свойство меняется другим объектом-почему (+приме Protected свойства и методы открыты наследникам
Re: privite свойство меняется другим объектом-почему (+приме А, кстати, в вашем случае и с приватным сработает. Класс имеет доступ к любым свойствам и методам любого экземпляра этого класса.