Las funciones definidas por el usuario

Una función se define utilizando la palabra clave function, un nombre, una lista de parámetros (que pueden estar vacíos) separados por comas (,) entre paréntesis, seguidos del cuerpo de la función entre llaves, como sigue:

Ejemplo #1 Declaración de una nueva función llamada foo

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

Nota:

A partir de PHP 8.0.0, la lista de parámetros puede tener una coma final:

<?php
function foo($arg_1, $arg_2,) { }
?>

Cualquier código PHP válido puede aparecer dentro del cuerpo de una función, incluso otras dentro de una función y en las definiciones de clase.

Los nombres de funciones siguen las mismas reglas que otros labels en PHP. Un nombre de función válido comienza por una letra o un guion bajo, seguido por un número cualquiera de letras, números o guiones bajos. Estas reglas pueden ser representadas por la siguiente expresión regular: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Las funciones no necesitan ser definidas antes de ser utilizadas, EXCEPTO cuando una función es definida condicionalmente, como se muestra en los dos ejemplos siguientes.

Cuando una función es definida de manera condicional, como en los ejemplos a continuación, su definición debe preceder su uso.

Ejemplo #2 Funciones condicionales

<?php

$makefoo
= true;

/* No se puede llamar a foo() aquí,
porque esta función no existe.
Pero se puede usar bar() */

bar();

if (
$makefoo) {
function
foo()
{
echo
"No existo hasta que el programa no pase por aquí.\n";
}
}

/* Ahora se puede llamar a foo()
porque $makefoo es evaluado como verdadero */

if ($makefoo) foo();

function
bar()
{
echo
"Existo desde el inicio del programa.\n";
}

?>

Ejemplo #3 Funciones dentro de otra función

<?php
function foo()
{
function
bar()
{
echo
"No existo hasta que foo() no sea llamado.\n";
}
}

/* No se puede llamar a bar() aquí
porque no existe. */

foo();

/* Ahora se puede llamar a bar(),
porque el uso de foo() la ha hecho
accesible. */

bar();

?>

Todas las funciones y clases en PHP tienen un ámbito global - pueden ser llamadas fuera de una función si han sido definidas dentro y viceversa.

PHP no soporta la sobrecarga, la destrucción y la redefinición de funciones ya declaradas.

Nota: Los nombres de funciones no distinguen entre mayúsculas y minúsculas para los caracteres ASCII A a Z, y generalmente se acepta que las funciones deben ser llamadas con el nombre utilizado en su declaración, incluyendo la capitalización.

Las listas variables de argumentos de función y las valores por defecto de argumentos son soportados: ver las funciones de referencia que son func_num_args(), func_get_arg(), y func_get_args() para más información.

Es posible llamar a funciones recursivas en PHP.

Ejemplo #4 Funciones recursivas

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

Nota: Las llamadas de métodos/funciones recursivas con 100-200 grados de recursividad pueden llenar la pila y así, terminar el script actual. Tenga en cuenta que una recursión infinita es considerada como un error de programación.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top