[wp-hackers] odd behaviour vs. global variables
    Peter Westwood 
    peter.westwood at ftwr.co.uk
       
    Fri Jun 13 16:50:13 GMT 2008
    
    
  
Matthias Vandermaesen wrote:
> I was working on my plugin for Mollom (http://www.netsensei.nl/mollom) when
> I started noticing some odd behaviour when declaring certain variables
> global. For instance, If we create this simple plugin: (omitted the
> obligatory header for brevity's sake)
>
> function dosomething($do_comment) {
>     global $do_comment; // let's declare it global
>     print_r($do_comment);
>     return $do_comment; // or alternatively: die();
> }
> add_action('preprocess_comment', 'dosomething');
>
> The $do_comment variable seems to be non-existant or empty! Meaning
> everything else breaks from here on as the input got lost somewhere along
> the way. But when we remove the 'global $do_comment' line, everything works
> like a charm and $do_comment  passes the commentdata $correctly.
>   
The global $do_comment line brings the global $do_comment variable into 
local scope.
This overrides the $do_comment variable passed into the function.
If you the global variable and the function argument differently then 
both will be available.
Cheers
westi
-- 
Peter Westwood
http://blog.ftwr.co.uk | http://westi.wordpress.com
C53C F8FC 8796 8508 88D6 C950 54F4 5DCD A834 01C5 
    
    
More information about the wp-hackers
mailing list