





Магические геттеры и сеттеры используются только тогда, когда свойство не существует или недоступно, это называется перегрузкой свойства.
Поскольку private $name недоступен извне класса, он использует ваш магический сеттер. Поскольку public $name доступен извне класса, он просто установит значение этого свойства.
какое это имеет отношение к __get?