Tutorial PHP

Parámetros por defecto
Parámetros por referencia

Parámetros

Parámetros por defecto

Si deseamos que la función por defecto ponga el texto en color azul, por ejemplo, la redefiniríamos de la siguiente manera:

 

function outputcol($strCadena, $strColor="0000FF") {

// Saca una cadena con el color deseado

Echo("<FONT COLOR=\"#$strColor\">$strCadena</FONT>");

}

 

y la podríamos llamar con:

outputcol("Defecto");

outputcol("Verde", "00FF00");

Dando el resultado:

<FONT COLOR="#0000FF">Defecto</FONT>

<FONT COLOR="#00FF00">Verde</FONT>

 

Evidentemente, siempre que una función tenga n parámetros por defecto, éstos deberán ser los n últimos parámetros declarados.

 

Parámetros por referencia

En PHP por defecto los parámetros se pasan por valor, es decir, que si los modificamos dentro de la función, a la vuelta de la función las variables pasadas como parámetro no se modificaron (a dichas variables se les denomina parámetros actuales de la función).

Si deseamos que las variables del llamante sean modificadas (los mencionados parámetros actuales), hay que pasar los parámetros por referencia:

<!-- Funcion1.php -->

function Concatena(&$strDest, $strSrc) {

// Esta función concatena dos cadenas y las devuelve

// en la primera cadena pasada

// $strDest se le pasa como parámetro por referencia.

$strDest = $strDest . $strSrc;

// Como $strSrc no se pasa por referencia, la siguiente

// instrucción no afecta al parámetro actual

$strSrc = "";

}

$strOrigen = "Mundo";

$strDestino = "Hola ";

Echo("Origen es $strOrigen y destino es $strDestino<BR>");

Concatena($strDestino, $strOrigen);

Echo("Origen es $strOrigen y destino es $strDestino<BR>");


Que ofrece el resultado:

Origen es Mundo y destino es Hola

Origen es Mundo y destino es Hola Mundo

 

Como se ve, para pasar un parámetro por referencia, basta con poner "&" delante del nombre del parámetro en la declaración de la función, es decir, poner "&" delante del nombre del parámetro formal.

También se puede pasar un parámetro por referencia aunque en la función no esté declarado como tal, anteponiendo el ampersand "&" al parámetro actual (al invocar la función).

 

<<<Anterior - Siguiente>>>


¡Visita también estos sitios interesantes!

Sitio alojado en Yaia.com