On Tue, Aug 10, 2010 at 12:23 PM, Richard Quadling <rquadl...@gmail.com> wrote:
> On 10 August 2010 16:49, Jim Lucas <li...@cmsws.com> 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

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to