This had me stumped for a while – using some 3rd party code with PHP 5.3, 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) :

$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 :
global $util;
$util = new Utility();
function show() {
global $util;
echo "$util->version";
}

  2 Responses to “PHP 5.3 and the “global” keyword”

  1. man off course global still works on php 5.3.
    at least it works on 5.3.5
    cheers

  2. thanks! i was wondering why it didn’t seem to work any more!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

   
© 2012 Julian Higman Suffusion theme by Sayontan Sinha