En php cuando se pasan parámetros a una función, estos por defecto se los hacen por valor, es decir php crea una copia del valor para trabajar dentro de la función y no modifica la variable original. Por ejemplo:
<?php function suma( $a ) { $a+=23; echo 'Valor dentro la función: ' . $a; } //se define variable $a = 10 ; echo 'Valor de $a original: ' . $a; echo '<br/>'; suma( $a ); echo '<br/>'; echo 'Valor de $a despues de la funcion: ' .$a; ?>
Tenemos como resultado:
Valor de $a original: 10 Valor dentro la función: 33 Valor de $a despues de la funcion: 10
Pasamos la variable $a hacia la función, se realizan operaciones dentro, pero la variable $a conserva su valor original porque la función crea una copia interna para trabajar.
Sin embargo php nos permite pasar los parámetros por referencia, es decir, que los valores que pasemos hacia una función , se verán afectadas por las operaciones internas realizadas en la función. Para pasar un valor por referencia, se utiliza el simbolo «&» por delante de la variable, osea si tenemos $variable, por referencia sería &$variable.
Ejemplo:
<?php function suma( $a ) { $a+=23; echo 'Valor dentro la función: ' . $a; } //se define variable $a = 10 ; echo 'Valor de $a original: ' . $a; echo '<br/>'; suma( &$a ); echo '<br/>'; echo 'Valor de $a despues de la funcion: ' .$a; ?>
El código es el mismo que en el primer ejemplo, con la única diferencia que al llamar a la función lo hacemos con el simbolo «&» antes de la variable, y tenemos como resultado:
Valor de $a original: 10 Valor dentro la función: 33 Valor de $a despues de la funcion: 33
Como se ve, la variable $a es afectada con las operaciones realizadas dentro de la función.
¿Y esto para que sirve?
Bueno, como dije al principio cuando se pasa un parámetro por valor a una función, se crea una copia de esta para trabajar dentro de la función, imagine una web de alto tráfico con 1 millón de visitas y 1000 parámetros entrando y saliendo de funciones a cada momento, es mucho trabajo para el servidor, pero si se pasan los parámetros por referencia, el proceso de los datos se alivia un poco.
fin 🙂
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
A continuación tenemos una clase que nos permite arrastrar un archivo de Excel (*.xlsx) y cargar su contenido en una tab...
Segunda parte del tutorial [Crea tu blog con el patrón MVC y php]. En esta 2da parte toca ver lo que es la creación del...
En este post aprenderemos a usar los gráficos 2d que viene con JavaFX en nuestras aplicaciones java swing. Esto puede se...
JSON Crack es un plugin para Visual Studio Code que permite analizar, validar y depurar archivos JSON de manera rápida y...
En ocasiones por motivos cualesquiera que sea queremos pasar proyectos hechos en netbeans a Eclipse, Netbeans cuenta con...
«Las palabras que elegimos dan forma a nuestra realidad. La Fuente Educada (Polite Type) es una fuente de código abierto...
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...