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>>>
|