Está en la página 1de 3

Funciones definidas por el usuario

Una función puede ser definida usando una sintaxis como la siguiente:

Ejemplo #1 Pseudo código para demostrar el uso de funciones

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Función de ejemplo.\n";
    return $valordevuelto;
}
?>

Cualquier código PHP válido puede aparecer dentro de una función, incluso otras funciones y
definiciones de clases.

Los nombres de las funciones siguen las mismas reglas que otras etiquetas de PHP. Un nombre
de función válido comienza con una letra o guión bajo, seguido de cualquier número de letras,
números, o guiones bajos. Como expresión regular se expresaría así: [a-zA-Z_\x7f-\xff][a-zA-Z0-
9_\x7f-\xff]*.

Las funciones no necesitan ser definidas antes de que se referencien, excepto cuando una función
está condicionalmente definida como se muestra en los dos ejemplos de abajo.

Cuando una función está definida de una forma condicional como en los dos ejemplos
mostrados, sus definiciones deben ser procesadas antes de ser llamadas.
Ejemplo #2 Funciones condicionales

<?php

$haceralgo = true;

/* No podemos llamar a foo() desde aquí
   ya que no existe aún,
   pero podemos llamar a bar() */

bar();

if ($haceralgo) {
  function foo()
  {
    echo "No existo hasta que la ejecución del programa llegue hasta mí.
\n";
  }
}

/* Ahora podemos llamar de forma segura a foo()
   ya que $haceralgo se evaluó como verdadero */

if ($haceralgo) foo();

function bar() 
{
  echo "Existo desde el momento inmediato que comenzó el programa.\n";
}

?>

Todas las funciones y las clases de PHP tienen ámbito global - pueden ser llamadas fuera de una
función incluso si fueron definidas dentro, y viceversa.

PHP no soporta la sobrecarga de funciones, ni es posible 'desdefinir' ni redefinir funciones


previamente declaradas.

Los nombres de las fuciones son insensibles a mayúsculas-minúsculas, por lo que es una buena
idea llamar a las funciones tal y como aparecen en sus declaraciones.

El número variable de argumentos y los argumentos predeterminados están soportados por las
funciones.
En PHP es posible llamar a funciones recursivas. Sin embargo, evite las llamadas a
funciones/métodos recursivos con más de 100-200 niveles de recursividad ya que pueden agotar
la pila y causar la terminación del script actual.

Ejemplo #3 Funciones recursivas

<?php
function recursividad($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursividad($a + 1);
    }
}
?>

También podría gustarte