Ciclo: Quinto
“Sistemas”
FUNCIONES
Vamos a
explicar algunos detalles adicionales sobre la definición y uso de funciones,
para ampliar el artículo de funciones en php.
Paso de parámetros
Los parámetros son los datos que reciben las funciones y que utilizan para realizar las operaciones de la función. Una función puede recibir cualquier número de parámetros, incluso ninguno. A la hora de definir la función, en la cabecera, se definen los parámetros que va a recibir.
function f1 ($parametro1, $parámetro2)
Así definimos una función llamada f1 que recibe dos parámetros. Como se puede observar, no se tiene que definir el tipo de datos de cada parámetro.
Los parámetros tienen validez durante la ejecución de la función, es decir, tienen un ámbito local a la función donde se están recibiendo. Cuando la función se termina, los parámetros dejan de existir.
Los parámetros se pasan por valor
El paso de parámetros en PHP se realiza por valor. "Por valor" es una manera típica de pasar parámetros en funciones, quiere decir que el cambio de un dato de un parámetro no actualiza el dato de la variable que se pasó a la función. Por ejemplo, cuando invocamos una función pasando una variable como parámetro, a pesar de que cambiemos el valor del parámetro dentro de la función, la variable original no se ve afectada por ese cambio. Puede que se vea mejor con un ejemplo:
function porvalor ($parametro1){
$parametro1="hola";
echo "<br>" . $parametro1; //imprime "hola"
}
$mivariable = "esto no cambia";
porvalor ($mivariable);
echo "<br>" . $mivariable; //imprime "esto no cambia"
Esta página tendrá como resultado:
hola
esto no cambia
Paso de parámetros por referencia
En contraposición al paso de parámetros por valor, está el paso de parámetros por referencia. En este último caso, el cambio del valor de un parámetro dentro de una función sí afecta al valor de la variable original.
Podemos pasar los parámetros por referencia si, en la declaración de la función, colocamos un "&" antes del parámetro.
<?
function porreferencia(&$cadena)
{
$cadena = 'Si cambia';
}
$str = 'Esto es una cadena';
porreferencia ($str);
echo $str; // Imprime 'Si cambia'
?>
Este script mostrará por pantalla 'Si cambia'.
Parámetros por defecto
Podemos definir valores por defecto para los parámetros. Los valores por defecto sirven para que los parámetros contengan un dato predefinido, con el que se inicializarán si no se le pasa ningún valor en la llamada de la función. Los valores por defecto se definen asignando un dato al parámetro al declararlo en la función.
function pordefecto ($parametro1="pepe";$parametro2=3)
Para la definición de función anterior, $parametro1 tiene como valor por defecto "pepe", mientras que $parametro2 tiene 3 como valor por defecto.
Si llamamos a la función sin indicar valores a los parámetros, estos tomarán los valores asignados por defecto:
pordefecto () // $parametro1 vale "pepe" y $parametro2 vale 3
Si llamamos a la función indicando un valor, este será tenido en cuenta para el primer parámetro.
pordefecto ("hola") // $parametro1 vale "hola" y $parametro2 vale 3
Atención, estamos obligados a declarar todos los parámetros con valores por defecto al
Paso de parámetros
Los parámetros son los datos que reciben las funciones y que utilizan para realizar las operaciones de la función. Una función puede recibir cualquier número de parámetros, incluso ninguno. A la hora de definir la función, en la cabecera, se definen los parámetros que va a recibir.
function f1 ($parametro1, $parámetro2)
Así definimos una función llamada f1 que recibe dos parámetros. Como se puede observar, no se tiene que definir el tipo de datos de cada parámetro.
Los parámetros tienen validez durante la ejecución de la función, es decir, tienen un ámbito local a la función donde se están recibiendo. Cuando la función se termina, los parámetros dejan de existir.
Los parámetros se pasan por valor
El paso de parámetros en PHP se realiza por valor. "Por valor" es una manera típica de pasar parámetros en funciones, quiere decir que el cambio de un dato de un parámetro no actualiza el dato de la variable que se pasó a la función. Por ejemplo, cuando invocamos una función pasando una variable como parámetro, a pesar de que cambiemos el valor del parámetro dentro de la función, la variable original no se ve afectada por ese cambio. Puede que se vea mejor con un ejemplo:
function porvalor ($parametro1){
$parametro1="hola";
echo "<br>" . $parametro1; //imprime "hola"
}
$mivariable = "esto no cambia";
porvalor ($mivariable);
echo "<br>" . $mivariable; //imprime "esto no cambia"
Esta página tendrá como resultado:
hola
esto no cambia
Paso de parámetros por referencia
En contraposición al paso de parámetros por valor, está el paso de parámetros por referencia. En este último caso, el cambio del valor de un parámetro dentro de una función sí afecta al valor de la variable original.
Podemos pasar los parámetros por referencia si, en la declaración de la función, colocamos un "&" antes del parámetro.
<?
function porreferencia(&$cadena)
{
$cadena = 'Si cambia';
}
$str = 'Esto es una cadena';
porreferencia ($str);
echo $str; // Imprime 'Si cambia'
?>
Este script mostrará por pantalla 'Si cambia'.
Parámetros por defecto
Podemos definir valores por defecto para los parámetros. Los valores por defecto sirven para que los parámetros contengan un dato predefinido, con el que se inicializarán si no se le pasa ningún valor en la llamada de la función. Los valores por defecto se definen asignando un dato al parámetro al declararlo en la función.
function pordefecto ($parametro1="pepe";$parametro2=3)
Para la definición de función anterior, $parametro1 tiene como valor por defecto "pepe", mientras que $parametro2 tiene 3 como valor por defecto.
Si llamamos a la función sin indicar valores a los parámetros, estos tomarán los valores asignados por defecto:
pordefecto () // $parametro1 vale "pepe" y $parametro2 vale 3
Si llamamos a la función indicando un valor, este será tenido en cuenta para el primer parámetro.
pordefecto ("hola") // $parametro1 vale "hola" y $parametro2 vale 3
Atención, estamos obligados a declarar todos los parámetros con valores por defecto al
final.
BIBLIOGRAFIA
http://www.desarrolloweb.com/articulos/1484.php
EJERCICIO EN PHP QUE MUESTRA LA FECHA EN ESPAÑOL
PHP
<?php
function mifuncion($val1,$val2)
{
$dia="";
switch($val1){
case 'Monday':
$dia="Lunes";
break;
case 'Tuesday':
$dia="Martes";
break;
case 'Wednesday':
$dia="Miercoles";
break;
case 'Thursday':
$dia="Jueves";
break;
case 'Friday':
$dia="Viernes";
break;
case 'Saturday':
$dia="Sabado";
break;
case 'Sunday':
$dia="domingo";
break;
}
$mes="";
switch($val2){
case 1:
$mes="Enero";
break;
case 2:
$mes="Febrero";
break;
case 3:
$mes="Marzo";
break;
case 4:
$mes="Abril";
break;
case 5:
$mes="Mayo";
break;
case 6:
$mes="Junio";
break;
case 7:
$mes="Julio";
break;
case 8:
$mes="Agosto";
break;
case 9:
$mes="Septiembre";
break;
case 10:
$mes="Octubre";
break;
case 11:
$mes="Noviembre";
break;
case 12:
$mes="Diciembre";
break;
}
echo "Hoy es ".$dia ." , ".date("j")." de ".$mes." del ".date("Y");
}
echo "<br>";
echo "Hoy es ".date("l").", ".date("j")." de ".date("F")." del ".date("Y");
echo "<br>";
mifuncion(date("l"),date("m"));
?>
function mifuncion($val1,$val2)
{
$dia="";
switch($val1){
case 'Monday':
$dia="Lunes";
break;
case 'Tuesday':
$dia="Martes";
break;
case 'Wednesday':
$dia="Miercoles";
break;
case 'Thursday':
$dia="Jueves";
break;
case 'Friday':
$dia="Viernes";
break;
case 'Saturday':
$dia="Sabado";
break;
case 'Sunday':
$dia="domingo";
break;
}
$mes="";
switch($val2){
case 1:
$mes="Enero";
break;
case 2:
$mes="Febrero";
break;
case 3:
$mes="Marzo";
break;
case 4:
$mes="Abril";
break;
case 5:
$mes="Mayo";
break;
case 6:
$mes="Junio";
break;
case 7:
$mes="Julio";
break;
case 8:
$mes="Agosto";
break;
case 9:
$mes="Septiembre";
break;
case 10:
$mes="Octubre";
break;
case 11:
$mes="Noviembre";
break;
case 12:
$mes="Diciembre";
break;
}
echo "Hoy es ".$dia ." , ".date("j")." de ".$mes." del ".date("Y");
}
echo "<br>";
echo "Hoy es ".date("l").", ".date("j")." de ".date("F")." del ".date("Y");
echo "<br>";
mifuncion(date("l"),date("m"));
?>
Al ejecutar nos muestra la siguiente pantalla con la fecha correspondiente.
No hay comentarios:
Publicar un comentario