Re: weird global issue [message #185338 is a reply to message #185332] |
Wed, 19 March 2014 17:16 |
The Natural Philosoph
Messages: 993 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 19/03/14 15:26, Arno Welzel wrote:
> Am 23.02.2014 21:35, schrieb The Natural Philosopher:
>> On 23/02/14 18:59, Christoph Michael Becker wrote:
>>> The Natural Philosopher wrote:
>>>
>>>> Consider
>>>> <?php
>>>> $x=array();
>>>>
>>>> function foo()
>>>> {
>>>> global $x;
>>>> foreach($x as $p) // fails with invalid type
>>>> {
>>>> }
>>>> }
>>>> ?>
>>>> ---------
>>>>
>>>> <?php
>>>> $x=array();
>>>> global $x;
>>>> function foo()
>>>> {
>>>> global $x;
>>>> foreach($x as $p) // works??
>>>> {
>>>> }
>>>> }
>>>> ?>
>>>> ---------
>>>> This behaviour seems only limited to arrays...
>>>
>>> No (unless there's a bug in a particular PHP version). Your first code
>>> sample works fine without even a notice.
>>>
>>
>> It doesn't here, but the code is being 'eval'ed' ...
>
> That's one of the reasons, why it is NOT "nice" to store code in a
> database and then use eval() to execute it.
>
>
>
actually it isn't.
It was because the global was essentially being declared in a
subroutine, which I had forgotten.
--
Ineptocracy
(in-ep-toc’-ra-cy) – a system of government where the least capable to
lead are elected by the least capable of producing, and where the
members of society least likely to sustain themselves or succeed, are
rewarded with goods and services paid for by the confiscated wealth of a
diminishing number of producers.
|
|
|