Где я могу получить список значений модификатора отражения? - PullRequest
3 голосов
/ 26 октября 2011

Эта функция вернула 524320 для одного моего занятия. Если я запускаю его через getModifierNames , он говорит мне:

>> Reflection::getModifierNames(524320)
array (
  0 => 'abstract',
)

Что правильно, но 524320 не является степенью 2, поэтому у него должны быть другие флаги? На самом деле, если мы посмотрим на его двоичное представление, 10100111 похоже, что у него установлено 5 флагов. Так, каковы другие 4, и где я могу найти список всех из них?

Редактировать: Теперь я в замешательстве ... представление на самом деле 10000000000000100000, согласно это . Что имеет смысл, потому что это соответствует «явному абстрактному классу». О ... Бьюсь об заклад, теперь это была проблема переполнения, о которой я думаю ... нужно расследовать немного больше.

1 Ответ

6 голосов
/ 26 октября 2011

См. Константы ZEND_ACC_ * в http://lxr.php.net/xref/PHP_TRUNK/Zend/zend_compile.h#144

Помните, что некоторые из них являются внутренними и в любом случае не экспортируются в пользовательское пространство. Те, которые экспортированы в пользовательское пространство, можно найти в http://php.net/manual/en/class.reflectionmethod.php и других классах.

...