Проверить переменную public php

Я хочу проверить, является ли локальная переменная в классе общедоступной или частной. Причина заключается в создании такой функции:

function ToArray() { $arr = array(); foreach($this as $key => $val) { $arr[$key] = $val; } return $arr; } 

Эта функция также возвращает частные поля, и я не хочу этого. Как я могу получить здесь только общедоступные переменные?

Из документации PHP ,

 $foo = new Foo(); $reflect = new ReflectionClass($foo); $props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC); foreach ($props as $prop) { print $prop->getName() . "\n"; } var_dump($props); 

Обязательно соблюдайте некоторые соглашения об именах с вашими частными переменными (например, я добавляю их с _ )

Затем просто верните те переменные, которые не имеют _ в начале своего ключа.

Чтобы получить список всех открытых атрибутов, вызовите get_object_vars() .

(Подсказка: вызов этого объекта будет возвращать все атрибуты.)