En este tutorial aprenderá cómo crear sus propias funciones personalizadas en PHP.

Funciones incorporadas de PHPUna función es un bloque de código autónomo que realiza una tarea específica.PHP tiene una gran colección de funciones internas o integradas a las que puedes llamar directamente dentro de tus scripts PHP para realizar una tarea específica, como gettype (), print_r (), var_dump, etc.Consulte la sección de referencia de PHP para obtener una lista completa de las funciones integradas útiles de PHP.

Funciones definidas por el usuario de PHPAdemás de las funciones integradas, PHP también te permite definir tus propias funciones. Es una forma de crear paquetes de códigos reutilizables que realizan tareas específicas y se pueden mantener y mantener por separado desde el programa principal. Aquí hay algunas ventajas de usar funciones:
  •     Las funciones reducen la repetición de código dentro de un programa: la función le permite extraer el bloque de código utilizado comúnmente en un solo componente. Ahora puede realizar la misma tarea llamando a esta función donde quiera dentro de su script sin tener que copiar y pegar el mismo bloque de código una y otra vez.
  •     Las funciones hacen que el código sea mucho más fácil de mantener, ya que una función creada una vez se puede usar muchas veces, por lo que cualquier cambio realizado dentro de una función se implementa automáticamente en todos los lugares sin tocar los diversos archivos.
  •     Las funciones hacen que sea más fácil eliminar los errores: cuando el programa se subdivide en funciones, si ocurre algún error, usted sabe exactamente qué función causa el error y dónde encontrarlo. Por lo tanto, corregir errores se vuelve mucho más fácil.
  •     Las funciones se pueden reutilizar en otra aplicación: como una función está separada del resto de la secuencia de comandos, es fácil reutilizar la misma función en otras aplicaciones simplemente incluyendo el archivo php que contiene esas funciones.

La siguiente sección le mostrará qué tan fácil puede definir su propia función en PHP.

Creación e invocación de funcionesLa sintaxis básica para crear una función personalizada se puede dar con:

function functionName () {
    
// Código a ser ejecutado
}La declaración de una función definida por el usuario comienza con la función de palabra, seguida por el nombre de la función que desea crear, seguido de paréntesis, es decir, () y finalmente coloca el código de su función entre llaves {}.Este es un ejemplo simple de una función definida por el usuario, que muestra la fecha de hoy:Ejemplo

    
<? php
    
// Función de definición
    
function
Quédíahoy() {
        
echo "Hoy es". date ('l', mktime ());
    
}
    
// función de llamada
    
Quédíahoy();
    
?>

Nota: El nombre de una función debe comenzar con una letra o carácter de subrayado que no tenga un número, seguido opcionalmente por más letras, números o caracteres de subrayado. Los nombres de funciones no distinguen entre mayúsculas y minúsculas.Funciones con parámetrosPuede especificar parámetros cuando define su función para aceptar valores de entrada en tiempo de ejecución. Los parámetros funcionan como variables de marcador de posición dentro de una función; son reemplazados en tiempo de ejecución por los valores (conocidos como argumento) proporcionados a la función en el momento de la invocación.

function myFunc ($oneParameter, $anotherParameter) {
    
// Código a ser ejecutado
}Puede definir tantos parámetros como desee. Sin embargo, para cada parámetro que especifique, se debe pasar un argumento correspondiente a la función cuando se invoca.La función getSum () en el ejemplo siguiente toma dos valores enteros como argumentos, simplemente agréguelos y luego muestre el resultado en el navegador.Ejemplo
    
<? php
    
// Función de definición
    
function getSum ($ num1, $ num2) {
      
$ sum = $ num1 + $ num2;
      
echo "La suma de los dos números $ num1 y $ num2 es: $ sum";
    
}
    
    
// función de llamada
    
getSum (10, 20);
    
?>El resultado del código anterior será:

La suma de los dos números 10 y 20 es: 30
 
Consejo: Un argumento es un valor que pasa a una función, y un parámetro es la variable dentro de la función que recibe el argumento. Sin embargo, en el uso común, estos términos son intercambiables, es decir, un argumento es un parámetro es un argumento.


Funciones con parámetros opcionales y valores predeterminadosTambién puede crear funciones con parámetros opcionales; simplemente inserte el nombre del parámetro, seguido de un signo igual (=), seguido de un valor predeterminado, como este.Ejemplo

    
<? php
    
// Función de definición
    function
customFont ($ font, $ size = 1.5) {
        
echo "<p style = \" font-family: $ font; font-size: {$ size} em; \ "> ¡Hola, mundo! </ p>";
    
}
    
    
// función de llamada
    
customFont ("Arial", 2);
    
CustomFont ("Tiempos", 3);
    
CustomFont ("Courier");

    
?>Como puede ver, la tercera llamada a customFont () no incluye el segundo argumento. Esto hace que el motor PHP use el valor predeterminado para el parámetro $ size que es 1.5.Devolver valores de una funciónUna función puede devolver un valor al script que llamó a la función utilizando la declaración return. El valor puede ser de cualquier tipo, incluidas matrices y objetos. 
Ejemplo

    
<? php
    
// Función de definición
    
function getSum ($ num1, $ num2) {
        
$ total = $ num1 + $ num2;
        
devolver $ total;
    
}
  
    
// Impresión de valor devuelto
    
echo getSum (5, 10); // Salidas: 15
    
?>Una función no puede devolver múltiples valores. Sin embargo, puede obtener resultados similares devolviendo una matriz, como se demuestra en el siguiente ejemplo.Ejemplo

    
<? php
    
// Función de definición
    function
divideNumbers ($ dividend, $ divisor) {
        
$ cociente = $ dividend / $ divisor;
        
$ array = array ($ dividend, $ divisor, $ cociente);
        
return $ array;

    
}    

    
// Asignar variables como si fueran una matriz
    
list ($ dividend, $ divisor, $ cociente) = divideNumbers (10, 2);
    
echo $ dividend; // Salidas: 10
    
echo $ divisor; // Salidas: 2
    
echo $ cociente; // Salidas: 5
    
?>Pasar argumentos a una función por referenciaEn PHP hay dos formas de pasar argumentos a una función: por valor y por referencia. Por defecto, los argumentos de función se pasan por valor de modo que si se cambia el valor del argumento dentro de la función, no se ve afectado fuera de la función. Sin embargo, para permitir que una función modifique sus argumentos, deben pasarse por referencia.Pasar un argumento por referencia se realiza anteponiendo un signo & (&) al nombre del argumento en la definición de la función, como se muestra en el siguiente ejemplo:Ejemplo

    
<? php
    
/ * Definición de una función que multiplica un número
    
por sí mismo y devolver el nuevo valor * /
    function
selfMultiply (& $number) {
        
$número * = $número;
        
devolver $ number;
    
}   
    
$mynum = 5;
    
echo $mynum; // Salidas: 5    
    
selfMultiply ($mynum);
    
echo $mynum; // Salidas: 25
    
?>Comprender el alcance variableSin embargo, puede declarar las variables en cualquier parte de un script PHP. Sin embargo, la ubicación de la declaración determina el alcance de la visibilidad de una variable dentro del programa PHP, es decir, donde se puede usar o acceder a la variable. Esta accesibilidad se conoce como alcance variable.Por defecto, las variables declaradas dentro de una función son locales y no se pueden ver ni manipular desde fuera de esa función, como se demuestra en el siguiente ejemplo:Ejemplo

    
<?php
    
// Función de definición
    
pruebadefuncionamiento(){
        
$ greet = "¡Hola mundo!";
        
echo $ greet;
    
}    
   
prueba(); // Salidas: ¡Hola mundo!
    
echo $ greet; // Generar error variable indefinido
    
?>Del mismo modo, si intenta acceder o importar una variable externa dentro de la función, obtendrá un error variable indefinido, como se muestra en el siguiente ejemplo:Ejemplo

    
<? php
    
$ greet = "¡Hola mundo!";  
   
// Función de definición
    
pruebadefuncionamiento(){
        
echo $ greet;
    
}
    
prueba(); // Generar error variable indefinido
    
echo $ greet; // Salidas: ¡Hola mundo!

    
?>Como puede ver en los ejemplos anteriores, la variable declarada dentro de la función no es accesible desde el exterior, de la misma manera que la variable declarada fuera de la función no es accesible dentro de la función. Esta separación reduce las posibilidades de que variables dentro de una función se vean afectadas por las variables en el programa principal.
Consejo: Es posible reutilizar el mismo nombre para una variable en diferentes funciones, ya que las variables locales solo se reconocen por la función en la que se declaran.La palabra clave globalPuede haber una situación en la que necesite importar una variable del programa principal a una función, o viceversa. En tales casos, puede usar la palabra clave global antes de las variables dentro de una función. Esta palabra clave convierte la variable en una variable global, haciéndola visible o accesible tanto dentro como fuera de la función, como se muestra en el siguiente ejemplo:

 Ejemplo

    <? php
    $ greet = "¡Hola mundo!";
    // Función de definición
    pruebadefuncionamiento(){

        global $ greet;

        echo $ greet;

    }
  
    prueba(); // Outpus: ¡Hola, mundo!

    echo $ greet; // Outpus: ¡Hola, mundo!

     // Asignar un nuevo valor a la variable
    $ greet = "Adiós";
    prueba(); // Salidas: Adiós

    echo $ greet; // Salidas: Adiós

    ?>


Aprenderá más sobre la visibilidad y el control de acceso en el capítulo de clases y objetos de PHP.
Crear funciones recursivas

Una función recursiva es una función que se llama una y otra vez hasta que se cumple una condición. Las funciones recursivas se usan a menudo para resolver cálculos matemáticos complejos, o para procesar estructuras profundamente anidadas, por ejemplo, imprimiendo todos los elementos de una matriz profundamente anidada.

El siguiente ejemplo demuestra cómo funciona una función recursiva.
Ejemplo


    <? php
    // Definición de función recursiva
    function printValues ($ arr) {
        cuenta global $;
        artículos globales $;      
        // La entrada de verificación es una matriz
        if (! is_array ($ arr)) {
            die("ERROR: La entrada no es una matriz");
        }       
        / *Loop a través de la matriz, si el valor es en sí mismo una matriz recurrentemente llamar  la función else agrega el valor encontrado a la matriz de elementos de salida,e incremente el contador en 1 por cada valor encontrado* /

        foreach ($ arr as $ a) {
            if (is_array ($ a)) {
               printValues ($ a);
           } else {
                $ artículos [] = $ a;
                $ count ++;
            }
        }      
        // Devuelve el recuento total y los valores encontrados en el conjunto
        return array ('total' => $ count, 'values' => $ items);
    }
    // Definir matriz anidada
    $ species = array (
        "birds" => array (
            "Águila",
            "Loro",
            "Cisne"
        ),
        "mamíferos" => array (

            "Humano",

            "cat" => array (

                "León",

                "Tigre",

                "Jaguar"
            ),
            "Elefante",
            "Mono"
        ),
        "reptiles" => array (

            "serpiente" => matriz (
                "Cobra" => matriz (
                    "Rey Cobra",
                    "Cobra egipcia"
                ),
                "Víbora",
                "Anaconda"
            ),
            "Cocodrilo",

            "Dinosaur" => array (

                "Tirano saurio Rex",

                "Alamosaurus"
            )
        )
    );
    // Cuenta e imprime valores en matriz anidada
    $ result = printValues ($ species);
    echo $ result ['total']. 'valor (es) encontrado (s):';
    echo implode (',', $ result ['values']);
    ?>




Nota: Tenga cuidado al crear funciones recursivas, ya que si el código se escribe incorrectamente, puede dar como resultado un ciclo infinito de llamadas a funciones.


<ANTERIOR                                      SIGUIENTE>