@Aleksander_M

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

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

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

        )

)

Из нее можно как-то получить значение count?
  • Вопрос задан
  • 100 просмотров
Решения вопроса 3
delphinpro
@delphinpro
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);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
LAPTOP.RU Кострома
от 25 000 до 65 000 ₽
LAPTOP.RU Москва
от 130 000 до 170 000 ₽
от 40 000 до 60 000 ₽
26 февр. 2021, в 05:09
3000 руб./за проект
26 февр. 2021, в 04:16
3000 руб./за проект
26 февр. 2021, в 01:40
1000 руб./за проект