Re: weird global issue [message #185003 is a reply to message #184995] |
Sun, 23 February 2014 20:41 |
The Natural Philosoph
Messages: 993 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 23/02/14 19:16, Ben Bacarisse wrote:
> The Natural Philosopher <tnp(at)invalid(dot)invalid> writes:
>
>> Consider
>> <?php
>> $x=array();
>>
>> function foo()
>> {
>> global $x;
>> foreach($x as $p) // fails with invalid type
>> {
>> }
>> }
>> ?>
>
> foo isn't called in this example, so what you've posted is not the
> actual code that's failing. The code will fail if the call to foo comes
> too early, specifically before the assignment happens, but maybe you can
> post a full example that fails?
>
the call to foo is after the variable is initialised.
I tested it by echoing gettype($x); both after initialising and inside
the function
It was fine outside the function and then returned NULL inside it.
I suspect the problem is in the way I am, 'eval' ing the code.
Provably the eval interpreter doesnt quite handle scope in the same way
that PHP itself does. And adding a global $x 'passes it up' to the
calling program.
> <snip>
>
--
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.
|
|
|