From:             andre dot goncalves at martelozero dot com
Operating system: Linux
PHP version:      4.3.1
PHP Bug Type:     Variables related
Bug description:  Local vars and function parameters not accessible!

Hi! this is really a spooky situation!  

A. problem with a class only happening in one site (other implementations
use same class and always worked fine).

B. It only happens the first time I hit the site. 

C. press F5, or re-enter address, and the problem is gone. 

D. restarting browser, causes the problem again. 

E. problem is: 

The 2nd time I call a method on a certain object, 
neither the method parameters, neither the global vars are 
acessible, only the pre-declared class members are there.

Remember, i have made a call to this method in the same script
exexcutation, some 20 lines before.

F. Even more spooky, some vars tend to echo values (wrong 
values) but var_dump shows NULL for the same var, 
right from the next line of code!!! 

G. Check below example: 

output 1, 3 and 4 show vardump of function parameters NULL 

ouput 2 shows that local var $_query (the function's parameter $_query)
receives the return value of the previous function foofunction() call

output 3 shows that variable is in fact NULL 

output 5 shows that local var is not accessible 

output 6 shows that global var is accessible 

output 7 and 8 shows class members ok 

output 9 and 10 shows assigning local vars impossible!!!! 

H. Don't belive me? TEST IT: 

http://66.220.28.17/zero/index.php 


Looks like assignment of variables is totally messed up (currupt?) 

The script is like dead: I also tried unseting the global 
instance of $mydbclass and recreating it, but I get NULL 
if I vardump the new instance!!! 

Please help me on this one! 


//:: CODE EXTRACT FOLLOWS 

//:: test function 
function foofunction($_bla) { 
return "YOUR BLAH: ".$_bla; 
} 

$fooglobal= "fooglobal"; 

// function call 
$mydbclass->query("select id from user"); 

//class definition 
class mydbclass { 

var $version = 1.0 

function mydbclass() { 
$this->connect(); } 

// more class methods ... 

function query($_query = "foo", $_fooparam = "bar") { 
global $fooglobal; 
global $queryix; 

$queryix++; 
$foolocal = "foolocal"; 
$this->foonewmember = "foonewmember"; 

echo "($queryix) _query="; 
var_dump($_query);echo BR; 
//:: 1 outputs: (2) _query=NULL 

if (!($this->tmp = mysql_query($_query))) { ; 

$this->tmp2 = $this->bla("select id from zero_user"); 

echo "_query echo="; 
echo($_query); 
//::2 outputs: _query echo=YOUR BLAH: bla bla 

echo "_query dump="; 
var_dump($_query); 
//::3 ouputs: _query dump=NULL 

echo "_fooparam="; 
var_dump($_fooparam); 
//::4 ouputs: fooparam=NULL 

echo "globalfoo="; 
var_dump($fooglobal); 
//::5 ouputs: fooglobal=fooglobal 

echo "foolocal="; 
var_dump($foolocal); 
//::6 ouputs: foolocal=NULL 

echo "foonewmember="; 
var_dump($this->foonewmember); 
//::7 ouputs: foonewmember=string(12) "foonewmember" 

echo "foooldmember="; 
var_dump($this->foooldmember); 
//::8 ouputs: foooldmember=string(9) "foooldmember" 

echo "result1="; 
var_dump($this->result1); 
//::9 ouputs: result1=bool(false) 

echo "result2="; 
var_dump($this->result2); 
//::10 ouputs: result2=NULL 

} 

// more class methods ... 

} // end of class 




__________________
Thanks,

André Gonçalves


-- 
Edit bug report at http://bugs.php.net/?id=22288&edit=1
-- 
Try a CVS snapshot:         http://bugs.php.net/fix.php?id=22288&r=trysnapshot
Fixed in CVS:               http://bugs.php.net/fix.php?id=22288&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=22288&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=22288&r=needtrace
Try newer version:          http://bugs.php.net/fix.php?id=22288&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=22288&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=22288&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=22288&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=22288&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=22288&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=22288&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=22288&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=22288&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=22288&r=gnused

Reply via email to