FAQ
Hi,

Is it possible to enumerate all visible class name in current scope?

If not names, a zval like structure is nice as well.

Thanks!

--
Best Regards,
Aaron Lewis - PGP: 0x13714D33 - http://pgp.mit.edu/
Finger Print: 9F67 391B B770 8FF6 99DC D92D 87F6 2602 1371 4D33

Search Discussions

  • Kris Craig at May 19, 2014 at 8:44 am

    On Mon, May 19, 2014 at 1:28 AM, Aaron Lewis wrote:

    Hi,

    Is it possible to enumerate all visible class name in current scope?

    If not names, a zval like structure is nice as well.

    Thanks!

    --
    Best Regards,
    Aaron Lewis - PGP: 0x13714D33 - http://pgp.mit.edu/
    Finger Print: 9F67 391B B770 8FF6 99DC D92D 87F6 2602 1371 4D33

    --
    PHP Internals - PHP Runtime Development Mailing List
    To unsubscribe, visit: http://www.php.net/unsub.php
    I know you can use get_declared_classes() to iterate through ALL declared
    classes, but I don't know how it behaves with regard to scope and
    visibility. I do know that it includes both user-defined and predefined
    classes in its output.

    --Kris
  • Aaron Lewis at May 19, 2014 at 9:04 am
    Hi Kris,

    Thanks for the quick reply. I found class_table HashTable structure in
    that zend function.

    But, do you know how to tell between user-defined classes and predefined ones?


    On Mon, May 19, 2014 at 4:44 PM, Kris Craig wrote:


    On Mon, May 19, 2014 at 1:28 AM, Aaron Lewis wrote:

    Hi,

    Is it possible to enumerate all visible class name in current scope?

    If not names, a zval like structure is nice as well.

    Thanks!

    --
    Best Regards,
    Aaron Lewis - PGP: 0x13714D33 - http://pgp.mit.edu/
    Finger Print: 9F67 391B B770 8FF6 99DC D92D 87F6 2602 1371 4D33

    --
    PHP Internals - PHP Runtime Development Mailing List
    To unsubscribe, visit: http://www.php.net/unsub.php
    I know you can use get_declared_classes() to iterate through ALL declared
    classes, but I don't know how it behaves with regard to scope and
    visibility. I do know that it includes both user-defined and predefined
    classes in its output.

    --Kris


    --
    Best Regards,
    Aaron Lewis - PGP: 0x13714D33 - http://pgp.mit.edu/
    Finger Print: 9F67 391B B770 8FF6 99DC D92D 87F6 2602 1371 4D33
  • Johannes Schlüter at May 19, 2014 at 12:38 pm

    On Mon, 2014-05-19 at 17:04 +0800, Aaron Lewis wrote:
    Hi Kris,

    Thanks for the quick reply. I found class_table HashTable structure in
    that zend function.

    But, do you know how to tell between user-defined classes and predefined ones?
    Please take a minute or two to try to find answers to such questions
    yourself. i.e. look at the class entry data structure, wonder whether
    the "type" element might be related, grep for it and see that it is set
    to either ZEND_INTERNAL_CLASS or ZEND_USER_CLASS. An alternative
    approach to figure this out is to think about a way to get this
    information from userspace, this should lead you to reflection, and that
    to the implementation of ReflectionClass::isUserDefined() in
    http://lxr.php.net/xref/PHP_TRUNK/ext/reflection/php_reflection.c#3574

    Yes, the documentation is limited on these things but most things can be
    figured out with some research. If you researched and are unsure feel
    free to ask, and we are welcoming questions, but please mind that you
    are sending the questions to a few hundred persons trying to follow the
    PHP development ...

    Thanks
    johannes

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-internals @
categoriesphp
postedMay 19, '14 at 8:28a
activeMay 19, '14 at 12:38p
posts4
users3
websitephp.net

People

Translate

site design / logo © 2022 Grokbase