Diferencia entre revisiones de «Usuario:ManuelRomero/ProgramacionWeb/funciones»
De WikiEducator
(→Funciones anónimas) |
|||
Línea 296: | Línea 296: | ||
;Variables de funciones | ;Variables de funciones | ||
*Declaro una variable y le asigno una función | *Declaro una variable y le asigno una función | ||
− | *En realidad es una forma diferente de declarar la función e invocarla, tiene la ventaja de gestionar todo como variables (posible | + | *En realidad es una forma diferente de declarar la función e invocarla, tiene la ventaja de gestionar todo como variables (posible comodidad por parte del programador) |
*Si uso esta técnica, no puedo invocar a la función antes de su declaración (ya que no existe en contenido de la variable) | *Si uso esta técnica, no puedo invocar a la función antes de su declaración (ya que no existe en contenido de la variable) | ||
+ | *Consiste en declarar una variable y asiganer la función | ||
+ | *Posteriormente podré invocar la función a través de la variable (he de poner también paréntesis en la invocación y no olvidar el ; (punto y coma) en la asignación) | ||
<source lang=php> | <source lang=php> | ||
<?php | <?php | ||
Línea 303: | Línea 305: | ||
return "hola caracola"; | return "hola caracola"; | ||
}; | }; | ||
− | + | d | |
echo $mi_funcion(); | echo $mi_funcion(); | ||
//imprimiría "hola caracola" | //imprimiría "hola caracola" | ||
Línea 322: | Línea 324: | ||
}; | }; | ||
− | //Este código funcionaría | + | //Este código funcionaría, php legunaje de doble pasada en su interpretación, |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
?> | ?> | ||
− | |||
+ | </source> | ||
+ | <source lang=php> | ||
+ | </source> | ||
+ | ;Invocación usando la función como un parámetro en otra función | ||
+ | *Esto se puede conseguir ver, usando alguna función del sistema que espere recibir una función de clausura, como iremos viendo a lo largo del curso. | ||
+ | (spl_autoload_register)[https://www.php.net/manual/es/function.spl-autoload-register.php] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
*Uso como valor de una variable | *Uso como valor de una variable | ||
*Uso de variables externas en la función con la palabra '''''use''''' (puede ser por valor o por referencia) | *Uso de variables externas en la función con la palabra '''''use''''' (puede ser por valor o por referencia) |
Revisión de 04:45 1 dic 2022
Proceso de creación / invocación de una función
- Lo primero es declarar una función
- Esto implica dejar una zona de memoria identificada con el nombre de la función
- En contenido de esas posiciones de memoria serán las acciones de la función
- Estas acciones estarán establecidas no con valores reales, sino con los parámetros de la declaración
- Estos parámetros se conocen como parámetros formales
- Invocación de función
- Es un tipo de instrucción, invocar a una acción o función.
- lo primero que ocurrirá es que voy a esa zona de memoria
- Lo siguiente es dar los valores reales (de la invocación) a los parámetros de la función (de la declaracion.
- Una vez que la función termina de ejecutarse, se retornará a la instrucción siguiente de la invocación
- Si la función devuelve algún valor, se recogerá y asignará a la variable de la instrucción de asignación desde la cual se invocó
<?php function a(&$num1, &$num2, $num3){ echo "Dentro de la función visibilizando valores <hr />"; echo "Valor de los parámetros \$num1 = $num1 \$num2 = $num2 \$num3 = $num3<br />"; $num1+=5; $num2+=5; $num3+=5; echo "Valor de los parámetros \$num1 = $num1 \$num2 = $num2 \$num3 = $num3<br />"; echo "Salgo de la función"; } //Ahora considero programa principal $a=100; $b=200; $c=300; echo "En el main antes de invocar a la función visualizando variables<hr />"; echo "Valor de variables \$a = $a \$b = $b \$c = $c <br />"; a($a,$b,$c); echo "En el mail después de invocar a la función visualizando variables<hr />"; echo "Valor de variables \$a = $a \$b = $b \$c = $c <br />"; ?>