@Aleksander_M

Как получить значение из protected свойств?

Есть модель, print_r выдает

Proj\Model\Counts Object
(
    [counts:protected] => Array
        (
            [user] => Proj\Model\Count Object
                (
                    [count:protected] => 3
                )

        )

)

Из нее можно как-то получить значение count?
  • Вопрос задан
  • 563 просмотра
Решения вопроса 3
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Написать геттер
class Count {
  // ...
  public function getCount(){
    return $this->count;
  }
}
Ответ написан
cr1gger
@cr1gger
Все дороги ведут в Рим — встретимся в Риме!
Можешь написать внутри класса свою функцию которая возвращает нужную тебе переменную.
А можно воспользоваться магическим методом __get и достать через него любую уже переменную.

class Unt{
	protected $count = 35;


	public function getCount()
	{
		return $this->count;
	}

	public function __get($var)
	{
		return $this->$var;
	}
}

$class = new Unt();
var_dump($class->getCount()); // 35
var_dump($class->count); // 35
Ответ написан
Комментировать
rpsv
@rpsv
делай либо хорошо, либо никак
Если доступа к классу нет или нет возможности расширить, то можно через рефлексию:
$refClass = new ReflectionClass($object);
$refProperty = $refClass->getProperty('count');
$refProperty->setAccessible(true);
$value = $refProperty->getValue($object);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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