@XXX-prog

Как изменить приватное свойство в PHP?

Сегодня на собеседовании задали вопрос. Как изменить приватное свойство в Классе PHP снаружи?
Кто-нибудь знает ответ? :)
(Сеттера нет)
  • Вопрос задан
  • 740 просмотров
Решения вопроса 2
VladimirAndreev
@VladimirAndreev
php web dev
<?php

class AAA {

  private $a = '777';

  function __toString() {

    return \sprintf("%s\n", $this->a);
  }
}


$a = new AAA;

echo $a;

$b = new ReflectionClass(AAA::class);

$property = $b->getProperty('a');
$property->setAccessible(true);
$property->setValue($a, 999);

echo $a;


as@avs:~$ php7.1 /tmp/testReflection.php 
777
999
Ответ написан
DevMan
@DevMan
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы