Pass by reference problem with PHP 5.3.1

rkawar

New Member
Ok, this is a weird problem, so please bear with me as I explain.We upgraded our dev servers from PHP 5.2.5 to 5.3.1.Loading up our code after the switch, we start getting errors like:\[code\]Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given in /home/spot/trunk/system/core/Database.class.php on line 105\[/code\]the line mentioned (105) is as follows:\[code\]call_user_func_array(Array($stmt, 'bind_param'), $passArray);\[/code\]we changed the line to the following:\[code\]call_user_func_array(Array($stmt, 'bind_param'), &$passArray);\[/code\]at this point (because \[code\]allow_call_time_pass_reference\[/code\]) is turned off, php throws this:\[code\]Deprecated: Call-time pass-by-reference has been deprecated in /home/spot/trunk/system/core/Database.class.php on line 105\[/code\]After trying to fix this for some time, I broke down and set \[code\]allow_call_time_pass_reference\[/code\] to on.That got rid of the \[code\]Deprecated\[/code\] warning, but now the \[code\]Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference\[/code\] warning is throwing every time, with or without the referencing.I have zero clue how to fix this. If the target method was my own, I would just reference the incoming vars in the func declaration, but it's a (relatively) native method (mysqli).Has anyone experienced this? How can I get around it?Thank you.
 
Back
Top