Re: [PHP] Variable variables into an array.

[email protected] (Andrew Ballard)
Newsgroups php.general
Message-ID <[email protected]>
On Tue, Aug 10, 2010 at 12:23 PM, Richard Quadling <[email protected]> wrote:
> On 10 August 2010 16:49, Jim Lucas <[email protected]> wrote:
>> Richard Quadling wrote:
>>>
>>> Hi.
>>>
>>> Quick set of eyes needed to see what I've done wrong...
>>>
>>> The following is a reduced example ...
>>>
>>> <?php
>>> $Set = array();
>>> $Entry = 'Set[1]';
>>> $Value = 'Assigned';
>>> $$Entry = $Value;
>>> print_r($Set);
>>> ?>
>>>
>>> The output is an empty array.
>>>
>>> Examining $GLOBALS, I end up with an entries ...
>>>
>>>    [Set] => Array
>>>        (
>>>        )
>>>
>>>    [Entry] => Set[1]
>>>    [Value] => Assigned
>>>    [Set[1]] => Assigned
>>>
>>>
>>> According to http://docs.php.net/manual/en/language.variables.basics.php,
>>> a variable named Set[1] is not a valid variable name. The [ and ] are
>>> not part of the set of valid characters.
>>>
>>> In testing all the working V4 and V5 releases I have, the output is
>>> always an empty array, so it looks like it is me, but the invalid
>>> variable name is an issue I think.
>>>
>>> Regards,
>>>
>>> Richard.
>>>
>>> NOTE: The above is a simple test. I'm trying to map in nested data to
>>> over 10 levels.
>>
>> For something like this, a string that looks like a nested array reference,
>> you might need to involve eval for it to "derive" that nested array.
>>
>
> I'm happy with that.
>
> It seems variable variables can produce variables that do not follow
> the same naming limitations as normal variables.
>

It would seem so. If eval() works, can you rearrange the strings a
little to make use of parse_str() and avoid the use of eval()?

Andrew
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.