Re: weird global issue [message #185000 is a reply to message #184994] |
Sun, 23 February 2014 20:35 |
The Natural Philosoph
Messages: 993 Registered: September 2010
Karma:
|
Senior Member |
|
|
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' ...
> Using a global statement in the global scope is not wrong, but it's
> useless in this case. See the PHP manual on global[1], especially the
> note at the end of the section.
In this case its the difference between the program working and not working.
>
> [1]
> < http://www.php.net/language.variables.scope.php#language.variables.scope.gl obal>
>
--
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.
|
|
|