This had me stumped for a while – using some 3rd party code with PHP 5.3.0, the “global” keyword didn’t seem to work any more (references to the supposedly “global” variable from within functions always gave NULL)..
You have to declare the variable as “global” before setting it in the outer scope – then it works again.
So, this used to work (but doesn’t under PHP 5.3.0) :
$util = new Utility();
global $util;
function show() {
global $util;
echo "$util->version";
}
but if you swap the lines of the declaration of $utils, then it does work under PHP 5.3.0 :
global $util;
$util = new Utility();
function show() {
global $util;
echo "$util->version";
}
aryan
May 26, 2011 at 8:46pmman off course global still works on php 5.3.
at least it works on 5.3.5
cheers
Mark
February 25, 2012 at 9:05pmthanks! i was wondering why it didn’t seem to work any more!
Actron
September 13, 2012 at 2:36pmThumbs up!
Steff
December 11, 2012 at 11:12amThanks a lot! This saved me from a lot of dispair!
jhigman
February 25, 2013 at 10:22amI think this was specifically a problem with PHP 5.3.0 – in later versions (certainly PHP 5.3.2+) it works as expected.
See also http://programisiai.lt/index.php/topic,1426.msg4171.html
Taffman
April 5, 2013 at 3:26pmHow about if the variable is set in a function
function processFile ($file, $count)
$count is incremented in the function when each record is added to a table, however I cant access this variable outside the function, it’s driving me mad!