Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #18755

Re: ArrayObject class unusable as array

From alex <1j9448a02@lnx159sneakemail.com.invalid>
Newsgroups comp.lang.php
Subject Re: ArrayObject class unusable as array
Date 2021-07-26 12:48 +0200
Organization Aioe.org NNTP Server
Message-ID <sdm3u7$110l$1@gioia.aioe.org> (permalink)
References (1 earlier) <ilvkcuFls6iU1@mid.individual.net> <sdgfq4$nd3$1@gioia.aioe.org> <im5jrrFsqrkU1@mid.individual.net> <sdlou2$1j06$1@gioia.aioe.org> <im7g50F9uq6U1@mid.individual.net>

Show all headers | View raw


Il 26/07/21 12:12, Arno Welzel ha scritto:
> alex:
> 
>> Il 25/07/21 19:03, Arno Welzel ha scritto:
>>> alex:
>>>
>>> [...]
>>>> echo "Object to array implicit conversion: ERROR \n";
>>>> array_merge(
>>>>        new ArrayObject,
>>>>        new ArrayObject,
>>>> );
>>>>
>>>> Output:
>>>>
>>>> Object to string implicit conversion: OK
>>>> MyClass
>>>> Object to array implicit conversion: ERROR
>>>>
>>>> Warning: array_merge(): Expected parameter 1 to be an array, object
>>>> given in /home/rino/Scaricati/esperimenti/merge-ArrayObject.php
>>>
>>> Because ArrayObject() is not an array.
>>>
>>> See <https://www.php.net/manual/en/class.arrayobject.php>
>>>
>>
>> mmmmhhhhhhhhhh...
>> Just like MyClass is not a string... :|
> 
> Yes, but MyClass provides the method __toString() which allows it to be
> used *like* a string. When asked for, MyClass will just return a string
> representation of itself as the return value of its __toString() method.
> 
> However - there is no __toArray() method to rturn an array when needed.
> That's the reason why ArrayObject provides getArrayCopy() to get a copy
> of the array object as an array value.
> 
> Also see:
> 
> <https://www.php.net/manual/en/language.oop5.magic.php>
> <https://www.php.net/manual/en/arrayobject.getarraycopy.php>
> 

However, the method should not be called

class C extends ArrayObject {
     function getArrayCopy(){
         echo 'CALLED';
     }
}

array_merge(
     (array) new C,
     (array) new C,
);

No output (CALLED)!!!

Back to comp.lang.php | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

ArrayObject class unusable as array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2021-07-23 10:17 +0200
  Re: ArrayObject class unusable as array Arno Welzel <usenet@arnowelzel.de> - 2021-07-23 12:36 +0200
    Re: ArrayObject class unusable as array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2021-07-24 09:34 +0200
      Re: ArrayObject class unusable as array Arno Welzel <usenet@arnowelzel.de> - 2021-07-25 19:03 +0200
        Re: ArrayObject class unusable as array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2021-07-26 09:40 +0200
          Re: ArrayObject class unusable as array Arno Welzel <usenet@arnowelzel.de> - 2021-07-26 12:12 +0200
            Re: ArrayObject class unusable as array alex <1j9448a02@lnx159sneakemail.com.invalid> - 2021-07-26 12:48 +0200
              Re: ArrayObject class unusable as array Jerry Stuckle <jstucklex@attglobal.net> - 2021-07-26 14:38 -0400
              Re: ArrayObject class unusable as array Arno Welzel <usenet@arnowelzel.de> - 2021-07-30 12:34 +0200

csiph-web