16-Funciones en php

El verdadero poder del PHP son las funciones

PHP tiene mas de 1000 funciones integradas y ademas puede crear sus proprias funciones

Las funciones integradas de php se pueden llamar desde el proyecto directamente para realizar una tarea especifica

Funciones creadas por el usuario

  • Una función es un bloque de declaraciones que se pueden usar repetidamente en un programa.
  • Una función no se ejecutará automáticamente cuando se carga una página.
  • Una función será ejecutada por una llamada a la función.

Una declaración de función definida por el usuario comienza con la palabra function:

...

sintaxis

function nombreFuncion() {
    El codigo se executa aqui!;
  } 

Nota: el nombre de una función debe comenzar con una letra o un guión bajo. Los nombres de las funciones NO distinguen entre mayúsculas y minúsculas.

Asigne a la función un nombre que refleje lo que la función lo hace!

En el siguiente ejemplo, creamos una función llamada "writeMsg()".

La apertura llave ( { ) indica el comienzo del código de función y el cierre la llave ( } ) indica el final de la función.

La función genera "Hola mundo!". Para llamar a la función, basta con escribir su nombre seguido de corchetes ():

 <?php
 function writeMsg() {
   echo "Hola Mundo";
 }
 
 writeMsg(); // llamar a la función
 ?> 

Argumentos de la función

La información se puede pasar a funciones a través de argumentos. Un argumento es solo como una variable

Los argumentos se especifican después del nombre de la función, entre paréntesis. Tú Puede agregar tantos argumentos como desee, simplemente sepárelos con una coma.

El siguiente ejemplo tiene una función con un argumento ($fname). Cuando el se llama a la función familyName(), también pasamos un nombre (por ejemplo, Jani), y el El nombre se usa dentro de la función, que genera varios nombres diferentes, pero un apellido igual:

<?php
function familyName($fname) {
  echo "$fname Robles.<br>";
}

familyName("Javier");
familyName("Elena");
familyName("Mary");
familyName("Cristina");
familyName("Manolo");
?> 
    

El siguiente ejemplo tiene una función con dos argumentos ($fname y $year):

<?php
function familyName($fname, $year) {
  echo "$fname Robles. Nascido en <br>";
}

familyName("Javier", "1975");
familyName("Elena", "1960");
familyName("Mary", "1980");
familyName("Cristina", "2000");
familyName("Manolo", "2010");
?> 
    

PHP es un lenguaje escrito libremente

En el ejemplo anterior, observe que no tuvimos que decirle a PHP qué tipo de datos es la variable.

PHP asocia automáticamente un tipo de dato a la variable, dependiendo de su valor. Dado que los tipos de datos no se establecen en un sentido estricto, puede hacer cosas como agregar una cadena a un entero sin causar un error.

En PHP 7, se agregaron declaraciones de tipo. Esto nos da una opción para especificar el tipo de datos esperado al declarar una función, y agregando la declaración strict, lanzará un "Fatal Error" si el tipo de datos no coincide.

En el siguiente ejemplo tratamos de enviar tanto un número como una cadena al función sin usar strict:

<?php
function addNumbers(int $a, int $b) {
  return $a + $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is changed to int(5), and it will return 10
?> 

Para especificar stricttenemos que configurar declare(strict_types=1);. Esto debe estar en la primera línea del archivo PHP.

En el siguiente ejemplo tratamos de enviar tanto un número como una cadena al función, pero aquí hemos añadido la strict declaración:

 <?php declare(strict_types=1); // strict requiremen
 function addNumbers(int $a, int $b) {
   return $a + $b;
 }
 echo addNumbers(5, "5 days");
 // since strict is enabled and "5 days" is not an integer, an error will be thrown
 ?> 

los strict La declaración obliga a que las cosas se usen de la manera prevista.




Valor de argumento predeterminado

El siguiente ejemplo muestra cómo usar un parámetro predeterminado. Si llamamos a la la función setHeight() sin argumentos toma el valor predeterminado como argumento:

<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
  echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?> 



Devolviendo valore

Para permitir que una función devuelva un valor, use el returndeclaración:

 <?php declare(strict_types=1); // strict requirement
 function sum(int $x, int $y) {
   $z = $x + $y;
   return $z;
 }
 
 echo "5 + 10 = " . sum(5, 10) . "<br>";
 echo "7 + 13 = " . sum(7, 13) . "<br>";
 echo "2 + 4 = " . sum(2, 4);
 ?> 



Declaraciones de tipos de devolución

PHP 7 también admite declaraciones de tipo para el returndeclaración. Al igual que con la declaración de tipo para argumentos de función, al habilitar el requisito estricto, generará un "Fatal Error" en una discrepancia de tipo.

Para declarar un tipo para el retorno de la función, agregue dos puntos ( :) y el tipo justo antes de la apertura rizado ( {)corchete al declarar la función.

En el siguiente ejemplo especificamos el tipo de retorno para la función:

<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : float {
  return $a + $b;
}
echo addNumbers(1.2, 5.2);
?> 

Puede especificar un tipo de retorno diferente al de los tipos de argumento, pero haga asegúrese de que la devolución sea del tipo correcto:

<?php declare(strict_types=1); // strict requirement
function addNumbers(float $a, float $b) : int {
  return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?> 



Pasar argumentos por referencia

En PHP, los argumentos generalmente se pasan por valor, lo que significa que una copia del valor es utilizado en la función y la variable que se pasó a la función no se puede cambiar.

Cuando un argumento de función se pasa por referencia, los cambios en el argumento también cambian la variable que se pasó. Para convertir un argumento de función en una referencia, el & se utiliza el operador:

 <?php
 function add_five(&$value) {
   $value += 5;
 }
 
 $num = 2;
 add_five($num);
 echo $num;
 ?> 




Publicar un comentario

0 Comentarios