Definición:
De manera básica y práctica, una función es un código que se guarda para ser usado luego bajo un nombre que es el nombre de la función.
La función o se crea o se ejecuta y puede llevar argumentos o no.
Para crear y ejecutar una función:
Se podría decir que para crear una función se ejecuta la función function seguido del nombre que se le va a dar a la función. Luego entre llaves se escribe el código que se va a ejecutar.
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // call the function
?>
Para ejecutar la función solo se le llama escribiendo su nombre.
Entonces la creación de una función es a la vez la ejecución de la función function.
Se argumenta
Las funciones tienen argumentos que son a la vez como pequeñas variables que se usan en la ejecución del código. Estos argumentos se separan por comas.
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
Los valores de estos argumentos se los pasamos cuando ejecutamos la función, que podrían ser valores enteros o cadenas, e incluso podríamos pasar un valor contenido en una variable.
<?php
function add_five(&$value) {
$value += 5;
}
$num = 2;
add_five($num);
echo $num;
?>
Incluso, en el código de WordPress veo que los argumentos son también otras funciones. Como en los casos para colocar las etiquetas <link>.
function meter-style() {
wp_enqueue_style( 'brigzen-theme', get_stylesheet_uri() );
}
En el código anterior se crea la función meter_style(), que a su vez lo que hace es llamar a la función wp_enqueue_style con dos argumentos: brigzen-theme que es una etiqueta para el id del <link> y, como segundo argumento, otra función, get_stylesheet_uri().
A su vez el argumento podría tener un valor predeterminado.
<?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);
?>
De no pasarse un argumento a la función al momento de ejecutarla, entonces la función va a asignar el valor predeterminado que es el que se le asigna cuando se crea.
Forzar el tipo valor para los argumentos
Hay una serie de explicaciones relacionadas con el tipo de valor (int, string, boolean, float) que toman los argumentos y el valor retornado por la variable que no van al caso aquí tanto detalle. Pero para saber más se puede consultar la sección de funciones de w3school.