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

De WikiEducator
Saltar a: navegación, buscar
 
(24 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 
<div class=slide>
 
<div class=slide>
==Funciones==
+
==Funciones en php==
<br />
+
*Para declarar funciones usamos la siguiente sintaxis
{{MRM_Objetivo|
+
;Las funciones es un elemento  fundamental
+
*Permite crear código modular
+
*Una forma de estructurar nuestro programa
+
}}
+
</div>
+
 
+
<div class=slide>
+
===Declaración de funciones===
+
 
<source lang=php>
 
<source lang=php>
function nombreFuncion ($paramFormal1, $paramFormal2 ,...){
+
function nombre_funcion([tipo]$var1[=valor_por_defecto], ...):[tipo_retorno]{
  //Instrucciones de la función
+
[instrucciones]
  return $valorRetorno //Opcionalmente en caso de que devuelva algún valor la función
+
[return [expresion]]
</source>
+
 
}
 
}
</div>
 
<div class=slide>
 
*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
 
#nombre o identificación de funciones
 
#parámetros formales entre paréntesis (Estos han de existir, aunque no haya parámetros)
 
#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.
 
</div>
 
 
 
<div class=slide>
 
;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 
 
{{Tip|Expresión regular para el identificador de funciones|
 
'''''[a-zA-Z_f_][a-zA-Z0-9_]*'''''
 
}}
 
</div>
 
<div class=slide>
 
;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
 
{{MRM_Puntos clave|Title=parámetros formales|
 
Los parámetros formales son variables locales a la función}}
 
</div>
 
 
<div class=slide>
 
{{MRM_Actividad|Title=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
 
#asignará valor a las variables
 
#las visualizará
 
#invocará a la función
 
#volverá a visualizar las variables
 
}}
 
</div>
 
 
<div class=slide>
 
===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
 
</div>
 
 
<div class=slide>
 
;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
 
<source lang=php>
 
function nombre_funcion(&$paramRef1, &$paramRef2, $paramVal1){
 
  ...
 
}
 
</source>
 
</div>
 
 
 
<div class=slide>
 
{{MRM_Actividad|Title=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
 
#asignará valor a las variables
 
#las visualizará
 
#invocará a la función
 
#volverá a visualizar las variables
 
}}
 
</div>
 
 
 
<div class=slide>
 
;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
 
</div>
 
 
<div class=slide>
 
 
 
{{MRM_Ejemplo|Title = ejemplo invocación a funciones|
 
{{Tip|Este código funcionará correctamente}}
 
<source lang=php>
 
    <?php
 
      a(5,6); 
 
      /*Mas instrucciones*/
 
      function a ($a, $b){
 
          echo "valor de $a";
 
          echo "valor de $b";
 
      }
 
</source>
 
}}
 
</div>
 
 
<div class=slide>
 
 
{{MRM_Ejemplo|Title = ejemplo invocación a funciones|
 
{{Tip|Este código no  funcionará }}
 
<source lang=php>
 
<?php
 
      a(5,6); 
 
      /*Mas instrucciones*/
 
      include ("funciones.php");
 
?>
 
</source>
 
*Contenido del ficheor funciones.php
 
<source lang=php>
 
<?php
 
function a ($a, $b){
 
          echo "valor de $a";
 
          echo "valor de $b";
 
}
 
?>
 
</source>
 
</div>
 
 
 
 
<div class="slide">
 
====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
 
</div>
 
 
<div class="slide">
 
;[http://es1.php.net/manual/es/function.var-dump.php var_dump]
 
<source lang=php>
 
void var_dump($expresion)
 
</source>
 
*Nos da información sobre la estructura de un valor resultado de una expresion
 
</div>
 
 
<div class="slide">
 
;[http://es1.php.net/manual/es/function.isset.php isset]
 
<source lang=php>
 
bool isset ( $variable )
 
</source>
 
*verifica que una variable tiene valor (está definida y no tiene un valor null)
 
<source lang=php>
 
<?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");
 
  ?>
 
</source>
 
</div>
 
 
<div class="slide">
 
;[http://es1.php.net/manual/es/function.empty.php empty]
 
<source lang=php>
 
bool empty ($varriable)
 
</source>
 
*Determina si una variable no existe. Devuelve true si no existe o su valor está vacío
 
</div>
 
 
<div class="slide">
 
{{MRM_Actividad|
 
Probamos las fuciones var_dump() que nos da información sobre el valor y el tipo}}
 
</div>
 
 
<div class="slide">
 
{{MRM_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}}
 
</div>
 
 
<div class="slide">
 
{{MRM_Actividad|
 
*Define las siguientes variables que se especifican en el código siguiente y verifica el resultado con empty()
 
 
<source lang=php>
 
$num=0;
 
$nombre="";
 
$nombre=null;
 
$nombre="0";
 
$pregunta = FALSE;
 
</source>
 
}}
 
</div>
 
 
<div class="slide">
 
;[http://es1.php.net/manual/es/function.gettype.php gettype]]
 
*Devuelve el tipo de una variable
 
<source lang=php>
 
string gettype($variable)
 
</source>
 
</div>
 
 
<div class="slide">
 
;[http://es1.php.net/manual/es/function.is-bool.phpis_bool][http://es1.php.net/manual/es/function.is-double.php is-double] [http://es1.php.net/manual/es/function.is-int.php is-int], is-xxx
 
*son funciones donde xxx especificado en el último nombre, puede ser cualquiera de los tipos
 
[[Archivo:funciones_is-xxx.png]]
 
</div>
 
 
<div class="slide">
 
*Todas ellas devuelve un booleano que indica si la variable, valor o expresion es o no de ese tipo,
 
<source lang=php>
 
string is_int($variable);
 
string is_double($variable);
 
string is_bool($variable);
 
string is_integer($variable);
 
string is_null($variable);
 
string is_string($variable);
 
...
 
</source>
 
</div>
 
 
<div class="slide">
 
{{MRM_Actividad|
 
Visualizar de qué tipo es la expresión mostrada en el código siguiente y visualiza el valor de la expresión}}
 
<source lang=php>
 
  $a=5;
 
 
</source>
 
</source>
</div>
+
*Veremos más sobre funciones más adelante
 
+
*De momento vemos
<div class="slide">
+
;[http://php.net/manual/es/function.unset.php unset]
+
*Destruye la variable especificada perdiéndose su valor
+
void unset ($var)
+
 
</div>
 
</div>

Última revisión de 07:31 5 oct 2020

Funciones en php

  • Para declarar funciones usamos la siguiente sintaxis
function nombre_funcion([tipo]$var1[=valor_por_defecto], ...):[tipo_retorno]{
[instrucciones]
[return [expresion]]
}
  • Veremos más sobre funciones más adelante
  • De momento vemos