Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #18755
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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