Как получить общественные собственности класса?

Я не могу использовать просто get_class_vars() потому что мне нужен он для работы с версией PHP ранее, чем 5.0.3 (см. Журнал изменений http://pl.php.net/get_class_vars),

Кроме того: Как я могу проверить, является ли собственность общественной?

5
задан MrWhite 27 November 2014 в 21:58
поделиться

2 ответа

Это возможно при использовании отражения.

<?php

class Foo {
  public $alpha = 1;
  protected $beta = 2;
  private $gamma = 3;
}

$ref = new ReflectionClass('Foo');
print_r($ref->getProperties(ReflectionProperty::IS_PUBLIC));

Результат:

Array
(
    [0] => ReflectionProperty Object
        (
            [name] => alpha
            [class] => Foo
        )

)
7
ответ дан 13 December 2019 в 19:28
поделиться

Или вы можете сделать так:

$getPublicProperties = create_function('$object', 'return get_object_vars($object);');
var_dump($getPublicProperties($this));
3
ответ дан 13 December 2019 в 19:28
поделиться
Другие вопросы по тегам:

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