У меня есть класс Foo
с общедоступными и защищенными свойствами. Foo
должен иметь нестатический метод getPublicVars()
, который возвращает список всех общедоступных свойств Foo
(это просто пример, который я знаю извне объекта Foo
, вызывающего get_object_vars()
выполнит это, и мне не нужен мой метод getPublicVars()
).
Примечание.. Это также должно возвращать динамически объявленные свойства, назначенные во время выполнения, экземпляру класса (объекту), которые не определены в определении класса.
Вот пример:
class Foo{
private $bar = '123';
protect $boo = '456';
public $beer = 'yum';
//will return an array or comma seperated list
public function getPublicVars(){
// thar' be magic here...
}
}
$foo = new Foo();
$foo->tricky = 'dynamically added var';
$result = $foo->getPublicVars();
var_dump($result); // array or comma list with 'tricky' and 'beer'
Каков наиболее сжатый способ получить только общедоступные свойства объекта изнутри собственного метода класса, в котором видны как общедоступные, так и защищенные?
Я посмотрел:
Но это не похоже на мой вопрос, поскольку он указывает на использование get_object_vars()
вне объекта.