This function returned 524320 for one my classes. If I run it through getModifierNames, it tells me:
>> Reflection::getModifierNames(524320)
array (
0 => 'abstract',
)
Which is correct, but 524320 isn’t a power of 2, so it must have some other flags? Actually, if we look at it’s binary representation, 10100111 it looks like it has 5 flags set. So what are the other 4, and where can I find a list of all of them?
Edit: Now I’m confused… the representation is actually 10000000000000100000, according to this. Which makes sense, because that corresponds to “explicit abstract class”. Oh… I bet this was an overflow issue now that I’m thinking about…must investigate a bit more.
See the ZEND_ACC_* constants in http://lxr.php.net/xref/PHP_TRUNK/Zend/zend_compile.h#144
Mind that some of these are internal and are not exported in anyway to userspace. The ones exported to userspace ones can be found in http://php.net/manual/en/class.reflectionmethod.php and other classes.