Pop-Up Thingie

Too Lazy BBS
  • Home
  • Forum
  • Files
  • Chat
  • Bulletins
  • Top doors
  • MOTD
  • BBS Stats
  • Radio
  • AvatarChat
  • Register
  • Log in

  1. Forum
  2. USENET
  3. comp.lang.php
  • ReflectionAttribute: IS_INSTANCEOF and getTarget()

    From alex@1j9448a02@lnx159sneakemail.com.invalid to comp.lang.php on Thu Oct 26 10:09:58 2023
    From Newsgroup: comp.lang.php

    https://www.php.net/manual/en/reflectionattribute.gettarget.php

    https://www.php.net/manual/en/class.reflectionattribute.php#reflectionattribute.constants.is-instanceof

    what are they for?
    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From Olen mitte keegi@kavalpeakelm@ya.ee to comp.lang.php on Sun Nov 12 09:12:55 2023
    From Newsgroup: comp.lang.php

    Interested ordering a webpage or in web programming services ?

    veebiprogrammeerimisteenused.medianewsonline.com


    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From J.O. Aho@user@example.net to comp.lang.php on Mon Nov 13 07:54:52 2023
    From Newsgroup: comp.lang.php

    On 26/10/2023 10.09, alex wrote:

    Just my guesses as the documentation is a bit thin at the moment

    https://www.php.net/manual/en/reflectionattribute.gettarget.php

    There are a number of attributes you can give a class, TARGET_* and you
    will get the sum of all those targets as an unified bit value. 0 if none
    of the TARGET_* are set.


    https://www.php.net/manual/en/class.reflectionattribute.php#reflectionattribute.constants.is-instanceof

    this will give you something like typeof for the instance in question.
    --
    //Aho

    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From alex@1j9448a02@lnx159sneakemail.com.invalid to comp.lang.php on Mon Nov 13 12:50:21 2023
    From Newsgroup: comp.lang.php

    Il 13/11/23 07:54, J.O. Aho ha scritto:
    https://www.php.net/manual/en/reflectionattribute.gettarget.php

    There are a number of attributes you can give a class, TARGET_* and you
    will get the sum of all those targets as an unified bit value. 0 if none
    of the TARGET_* are set.

    mmmhhh...

    Are you sure?
    An example? (here's mine below)

    ~$ cat /tmp/aaa
    <?php

    #[ATTRIB]
    class TARGET_CLASS {

    #[ATTRIB]
    function TARGET_METHOD() {}

    }

    #[ATTRIB]
    function TARGET_FUNCTION() {}

    function TARGET_xxx() {}

    $reflections = [
    new ReflectionClass('TARGET_CLASS'),
    new ReflectionMethod('TARGET_CLASS::TARGET_METHOD'),
    new ReflectionFunction('TARGET_FUNCTION'),
    new ReflectionFunction('TARGET_xxx'),
    ];

    foreach ($reflections as $reflection) {
    echo $reflection->getName() . ': ';
    echo $reflection->getAttributes()[0]->getTarget() || "IS ZERO";
    echo PHP_EOL;
    }
    ~$ php /tmp/aaa
    TARGET_CLASS: 1
    TARGET_METHOD: 1
    TARGET_FUNCTION: 1
    TARGET_xxx: PHP Warning: Undefined array key 0 in /tmp/aaa on line 25
    PHP Fatal error: Uncaught Error: Call to a member function getTarget()
    on null in /tmp/aaa:25

    REPEAT:
    An example?

    https://www.php.net/manual/en/class.reflectionattribute.php#reflectionattribute.constants.is-instanceof

    this will give you something like typeof for the instance in question.

    typeof...???

    https://www.google.com/search?channel=fs&client=ubuntu-sn&q=php+typeof#ip=1



    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From J.O. Aho@user@example.net to comp.lang.php on Mon Nov 13 14:32:39 2023
    From Newsgroup: comp.lang.php

    On 13/11/2023 12.50, alex wrote:
    Il 13/11/23 07:54, J.O. Aho ha scritto:
    https://www.php.net/manual/en/reflectionattribute.gettarget.php

    There are a number of attributes you can give a class, TARGET_* and
    you will get the sum of all those targets as an unified bit value. 0
    if none of the TARGET_* are set.

    mmmhhh...

    Are you sure?

    No and yes, it wasn't really what I thought

    I thought it would give the value of #[Attribute(Attribute::TARGET_CLASS|Attribute::IS_REPEATABLE)] (65)

    but it only gives you

    Attribute::TARGET_CLASS (1)
    Attribute::TARGET_FUNCTION (2)
    Attribute::TARGET_METHOD (4)

    see: https://github.com/php/php-src/blob/cc2bf119519c8dd7d6afa2b63aa4ea8b014f205d/Zend/zend_attributes.h

    You can see at the unitest: https://github.com/php/php-src/blob/cc2bf119519c8dd7d6afa2b63aa4ea8b014f205d/Zend/tests/attributes/020_userland_attribute_validation.phpt


    https://www.php.net/manual/en/class.reflectionattribute.php#reflectionattribute.constants.is-instanceof

    this will give you something like typeof for the instance in question.

    typeof...???

    just ignore this part.. typeof used in other languages when you want to
    know what type something is of and I was hasty in my reply and guessed
    without really reading.
    --
    //Aho
    --- Synchronet 3.21d-Linux NewsLink 1.2
  • Who's Online

  • System Info

    Sysop: Amessyroom
    Location: Fayetteville, NC
    Users: 65
    Nodes: 6 (0 / 6)
    Uptime: 01:40:56
    Calls: 862
    Files: 1,311
    D/L today: 10 files
    (20,373K bytes)
    Messages: 264,188

Download SyncTerm or IcyTerm for best BBS experience. RetroTerm is a web-based alternative also. -- © Too Lazy BBS, 2026