La pregunta es si una conexión de base de datos debe pasarse por referencia o por valor?Pasar la conexión de la base de datos por referencia en PHP
Para mí específicamente estoy cuestionando una conexión de PHP a MySQL, pero creo que se aplica a todas las bases de datos.
He oído que en PHP cuando pasa una variable a una función u objeto, se copia en la memoria y, por lo tanto, utiliza el doble de memoria inmediatamente. También he oído que solo se copia una vez que se han realizado cambios en el valor (como una clave que se agrega/elimina de una matriz).
En una conexión de base de datos, creo que se está cambiando dentro de la función, ya que la consulta podría cambiar cosas como la última inserción de id o filas numéricas. (Supongo que esta es otra pregunta: ¿hay cosas como filas num e ID de inserción almacenadas en la conexión o se realiza una llamada real a la base de datos?)
Entonces, ¿importa la memoria o la velocidad si se pasa la conexión? por referencia o valor? ¿Hace una diferencia PHP 4 vs 5?
// $connection is resource
function DoSomething1(&$connection) { ... }
function DoSomething2($connection) { ... }
"function DoSomething1 (& $ connection) {...}" no es call-time pass-by-reference –
Iba a decir lo mismo que tom - eso NO es pass-by- referencia que, como su nombre lo indica, se produce en el momento de la función. llamando, no declaración El tiempo de referencia de la llamada por referencia se parece a este Php doSomething (& $ conn); ?> –
El estado global suele ser una mala respuesta a cualquier problema. – troelskn