FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » weird global issue
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: weird global issue [message #185004 is a reply to message #185003] Sun, 23 February 2014 20:49 Go to previous messageGo to previous message
Christoph Michael Bec is currently offline  Christoph Michael Bec
Messages: 207
Registered: June 2013
Karma:
Senior Member
The Natural Philosopher wrote:

> 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.

Might have been a good idea to mention this in the first place. :)

> 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.

Actually, eval() as well as include() don't change the situation, unless
they're placed in a function, as both language constructs evaluate the
code in the scope of the code using them. Apparently that is happening
in your case.

--
Christoph M. Becker
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: string length
Next Topic: Job offer is hereby withdrawn - it's done!
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Sun Nov 24 15:31:04 GMT 2024

Total time taken to generate the page: 0.05116 seconds