Diferencia entre revisiones de «Plantilla:PHP/Declaracion/Funciones»

De WikiEducator
Saltar a: navegación, buscar
(Declaración de funciones)
(Declaración de funciones)
Línea 33: Línea 33:
 
* El nombre de función es un identificador que empieza por una letra o guión bajo, seguido 0 o muchas letras, números o guiones bajos   
 
* El nombre de función es un identificador que empieza por una letra o guión bajo, seguido 0 o muchas letras, números o guiones bajos   
 
{{Tip|Expresión regular para el identificador de funciones  
 
{{Tip|Expresión regular para el identificador de funciones  
'''''[a-zA-Z_f_][a-zA-Z0-9_]*'''''
+
'''''[a-zA-Z_f_][a-zA-Z0-9_]*'''''
 
}}
 
}}
 
</div>
 
</div>

Revisión de 22:31 18 oct 2016

Funciones



Icon objectives.jpg
Objetivo
Las funciones es un elemento fundamental
  • Permite crear código modular
  • Una forma de estructurar nuestro programa

Declaración de funciones

function nombreFuncion ($paramFormal1, $paramFormal2 ,...){
  //Instrucciones de la función
  return $valorRetorno //Opcionalmente en caso de que devuelva algún valor la función
}
  • Es importante diferenciar entre delarar una función e invocar a una función
  • Algo obvio, pero importante
  • En la declaración tenemos tres partes
  1. nombre o identificación de funciones
  2. parámetros formales entre paréntesis (Estos han de existir, aunque no haya parámetros)
  3. Cuerpo de la función, dentro de él puede estar la instrucción return, en cuyo momento termina la ejecución de la función y se vuelve a la siguiente instrucción del programa, siguiente a la invocación de la función.


Identificador de función
  • El nombre de función es un identificador que empieza por una letra o guión bajo, seguido 0 o muchas letras, números o guiones bajos
Icon present.gif
Tip: Expresión regular para el identificador de funciones
[a-zA-Z_f_][a-zA-Z0-9_]*


Parámetros formales
  • Son nombres de variables que usaré al escribir el código o cuerpo de la función
  • El nombre ha de ser significativo y se convertirán en variables locales a la función
  • Una vez que se termina la función estas variables desaparecerán de memoria


Icon key points.gif

parámetros formales

Los parámetros formales son variables locales a la función


Icon activity.jpg
Ejercicio usando funciones

Haz un programa donde en el programa principal se creen dos variables $a y $b

  • Crea una función que reciba como parámetros locales $a y $b
  • La función visualizará el valor de las variables, las modificará y las volverá a visualizar
  • El programa principal
  1. asignará valor a las variables
  2. las visualizará
  3. invocará a la función
  4. volverá a visualizar las variables



Parámetros formales: Valores y referencias

  • Cómo hemos visto, los parámetros formales son valores pasados en la invocación a la función
  • Si queremos que la función pueda modificar el valor de los valores de los parámetros, en este caso hemos de pasarlos por referenica
  • En este caso lo que ocurre en realidad es que pasamos la dirección de memoria dónde se guarda el valor.
  • La dirección de memoria, no la podremos visualizar ni operar con ella, pues en php no existe la aritmética de punteros o direcciones de memoria
Parámetros formales
Valores y referencias

Para pasar el parámetro por referencia, simplemente hay que poner el símbolo de dirección de memoria & antes del nombre de la variable en la declaración de parámetros

function nombre_funcion(&$paramRef1, &$paramRef2, $paramVal1){
   ...
}



Icon activity.jpg
Ejercicio usando funciones parámetros

Haz un programa donde en el programa principal se creen dos variables $a y $b y $c

  • Crea una función que reciba como parámetros locales &$num1,&$num2 y $num3
  • La función visualizará el valor de las variables, las modificará y las volverá a visualizar
  • El programa principal
  1. asignará valor a las variables
  2. las visualizará
  3. invocará a la función
  4. volverá a visualizar las variables




Invocando funciones
  • Una vez creada una función la podemos invocar como si fuera una instrucción del lenguaje
  • No sin razón en determinados ambientes se conoce a las funciones y procedimientos como instrucciones virtuales ...
  • En php puedo invocar a una función antes de declararla, siempre que la declare en el mismo fichero



Icon casestudy.gif
ejemplo invocación a funciones
Icon present.gif
Tip: Este código funcionará correctamente


    <?php
      a(5,6);  
      /*Mas instrucciones*/
      function a ($a, $b){
          echo "valor de $a";
          echo "valor de $b";
      }




Icon casestudy.gif
ejemplo invocación a funciones
Icon present.gif
Tip: Este código no funcionará


<?php
      a(5,6);  
      /*Mas instrucciones*/
      include ("funciones.php");
?>
  • Contenido del ficheor funciones.php
<?php
function a ($a, $b){
          echo "valor de $a";
          echo "valor de $b";
}
?>



Funciones de php de tipos y valores

http://php.net/manual/es/ref.var.php
  • Existen una serie (muchas) de funciones que son interesantes de conocer
  • Estas funciones ya están creadas y se pueden usar directamente
  • Están relacionadas con los tipos de datos y valores
  • Alguna de ellas son extremadamente útiles y utilizadas, por ejemplo antes de procesar un dato, hay que ver que dicho dato tenga valor.
  • A continuación trataremos alguna de ellas
var_dump
 void var_dump($expresion)
  • Nos da información sobre la estructura de un valor resultado de una expresion
isset
 bool isset ( $variable )
  • verifica que una variable tiene valor (está definida y no tiene un valor null)
<?php
 $VariableValor= 5;
 print ("El valor de la variable es $VariableValor");
 print ("El valor de otra variable es $OtraVariableValor");
 if (isset($VariableValor))
     print ("VariableValor tiene valor asignado");
 else
     print ("VariableValor no no tiene valor asignado");
 if (isset($OtraVariableValor))
     print ("OtraVariableValor tiene valor asignado");
 else
     print ("OtraVariableValor no no tiene valor asignado");
  ?>
empty
bool empty ($varriable)
  • Determina si una variable no existe. Devuelve true si no existe o su valor está vacío


Icon activity.jpg
Actividad

Probamos las fuciones var_dump() que nos da información sobre el valor y el tipo



Icon activity.jpg
Actividad

Usando la función xxxyyy donde xxx e yyy será dec oct bin o hex para convertir el valor de un sistema numérico a otro



Icon activity.jpg
Actividad
  • Define las siguientes variables que se especifican en el código siguiente y verifica el resultado con empty()
 $num=0;
 $nombre="";
 $nombre=null;
 $nombre="0";
 $pregunta = FALSE;



gettype]
  • Devuelve el tipo de una variable
string gettype($variable)
[1]is-double is-int, is-xxx
  • son funciones donde xxx especificado en el último nombre, puede ser cualquiera de los tipos

Funciones is-xxx.png

  • Todas ellas devuelve un booleano que indica si la variable, valor o expresion es o no de ese tipo,
string is_int($variable);
string is_double($variable);
string is_bool($variable);
string is_integer($variable);
string is_null($variable);
string is_string($variable);
...


Icon activity.jpg
Actividad

Visualizar de qué tipo es la expresión mostrada en el código siguiente y visualiza el valor de la expresión


  $a=5;
unset
  • Destruye la variable especificada perdiéndose su valor

void unset ($var)