Funciones PHP
El verdadero poder de PHP proviene de sus funciones.
PHP tiene más de 1000 funciones integradas y, además, puede crear sus propias funciones personalizadas.
Funciones integradas de PHP
PHP tiene más de 1000 funciones integradas a las que se puede llamar directamente, desde un script, para realizar una tarea específica.
Consulte nuestra referencia de PHP para obtener una descripción completa de las funciones integradas de PHP .
Funciones definidas por el usuario de PHP
Además de las funciones PHP integradas, es posible crear sus propias funciones.
- 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.
Crear una función definida por el usuario en PHP
Una declaración de función definida por el usuario comienza con la palabra function
:
Sintaxis
function functionName()
{
code to be executed;
}
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.
Sugerencia: ¡Dé a la función un nombre que refleje lo que hace la función!
En el siguiente ejemplo, creamos una función llamada "writeMsg()". La llave de apertura ( { ) indica el comienzo del código de función, y la llave de cierre ( } ) indica el final de la función. La función emite "¡Hola mundo!". Para llamar a la función, basta con escribir su nombre seguido de corchetes ():
Ejemplo
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // call the function
?>
Argumentos de la función PHP
La información se puede pasar a funciones a través de argumentos. Un argumento es como una variable.
Los argumentos se especifican después del nombre de la función, entre paréntesis. Puede agregar tantos argumentos como desee, simplemente sepárelos con una coma.
El siguiente ejemplo tiene una función con un argumento ($fname). Cuando se llama a la función familyName(), también pasamos un nombre (por ejemplo, Jani), y el nombre se usa dentro de la función, que genera varios nombres diferentes, pero un apellido igual:
Ejemplo
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
El siguiente ejemplo tiene una función con dos argumentos ($fname y $year):
Ejemplo
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
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 número entero sin causar un error.
En PHP 7, se agregaron declaraciones de tipo. Esto nos da la opción de especificar el tipo de datos esperado al declarar una función y, al agregar la strict
declaración, arrojará un "Error fatal" si el tipo de datos no coincide.
En el siguiente ejemplo, intentamos enviar un número y una cadena a la función sin usar strict
:
Ejemplo
<?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 strict
necesitamos establecer declare(strict_types=1);
. Esto debe estar en la primera línea del archivo PHP.
En el siguiente ejemplo, intentamos enviar tanto un número como una cadena a la función, pero aquí hemos agregado la strict
declaración:
Ejemplo
<?php declare(strict_types=1); // strict requirement
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
?>
La strict
declaración obliga a que las cosas se usen de la manera prevista.
Valor de argumento predeterminado de PHP
El siguiente ejemplo muestra cómo usar un parámetro predeterminado. Si llamamos a la función setHeight() sin argumentos, toma el valor predeterminado como argumento:
Ejemplo
<?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);
?>
Funciones PHP - Devolviendo valores
Para permitir que una función devuelva un valor, use la return
declaración:
Ejemplo
<?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 de PHP
PHP 7 también admite declaraciones de tipo para la return
declaración. Al igual que con la declaración de tipo para los argumentos de función, al habilitar el requisito estricto, generará un "Error fatal" en una falta de coincidencia de tipo.
Para declarar un tipo para el retorno de la función, agregue dos puntos (
:
) y el tipo justo antes del {
corchete de apertura ( ) al declarar la función.
En el siguiente ejemplo especificamos el tipo de retorno para la función:
Ejemplo
<?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 devolución diferente a los tipos de argumento, pero asegúrese de que la devolución sea del tipo correcto:
Ejemplo
<?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 se usa una copia del valor en la función y la variable que se pasó a la función no se puede cambiar.
Cuando se pasa un argumento de función 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, &
se usa el operador:
Ejemplo
Use un argumento de paso por referencia para actualizar una variable:
<?php
function add_five(&$value) {
$value += 5;
}
$num
= 2;
add_five($num);
echo $num;
?>