PHP

Как в PHP получить значение private-свойства

Условие: нельзя менять исходный класс.
Решение: использовать оператор print_r и буферизацию вывода.
<?php
 
// проверочный класс
class Test {
    // приватное свойство
    private $value;
    // функция установки приватного свойства
    public function set($init) {
        $this->value = $init;
    }
}
 
// объект проверочного класса
$tmp = new Test();
 
// установим значение приватного свойства
$tmp->set(1024);
 
// получим значение приватного свойства
ob_start();
print_r($tmp);
$ob = ob_get_contents();
ob_end_clean();
preg_match("#\<p style="text-align:center;"><span class="MathJax_Preview"><img src="http://blogfigaroo.ru/wp-content/plugins/latex/cache/tex_41bb038feebf6777597618b6a7e5a008.gif" style="" class="tex" alt="value:private\ "></span></p> => ([^\s]*)\n#is", $ob, $m);
$value = $m[1];
echo $value;
 
?>
Теги:
private-свойства
Добавлено: 16 Мая 2018 09:39:17 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...