Funciones PHP con argumentos predeterminados

Las funciones PHP aceptan valores predeterminados de tipo escalar, de tipo array y de tipo null. Recuerda que escalar significa indivisible, y que los tipos escalares de PHP son los enteros, los float, los string y los booleanos.

Para familiarizarnos con los argumentos por defecto vamos a ver un juego de funciones de ejemplo que aceptan números enteros. Estos ejercicios están en el repositorio phpguay de GitHub.

Archivo integer-value-01.php:

Este ejemplo devuelve un año. Si llamamos a la función sin ningún argumento se imprimirá la cadena “Estamos en 2014”, con el año en curso; en cambio, si llamamos a la función pasándole el número 1900, se imprimirá la cadena “Estamos en 1900”.

Archivo integer-value-02.php:

Este es como el anterior pero ahora le añadimos un mes. Si llamamos a la función sin ningún argumento se imprimirá la cadena “mes 8 de 2014”, que son los parámetros predeterminados, los del mes en curso. En cambio, si la llamamos pasándole el número 10, se imprimirá la cadena “mes 10 de 2014”.

Fíjate que los argumentos se evalúan de izquierda a derecha, ¡esto es muy importante! Si pasamos un único argumento a la función, PHP entiende que estamos haciendo referencia al primero, al mes, en este caso.

Finalmente, otro ejemplo es llamar a la función pasándele los números 1 y 1900, en cuyo caso se imprime la cadena “mes 1 de 1900”.

Archivo integer-value-03.php:

Este ejemplo imprime la fecha actual: “dia 11 del mes 8 de 2014”. Tiene 3 argumentos.

Archivo integer-value-04.php:

Esto es una variante del ejemplo anterior. Este script genera este error:

¡Claro! Es normal, no se puede hacer. Cuando utilizamos argumentos por defecto, primero hay que escribir en la firma de la función los argumentos no predeterminados y luego los predeterminados. Funciona así. Los argumentos predeterminados deben estar a la derecha.

Archivo integer-value-05.php:

A diferencia del ejercicio anterior, esta variante es correcta porque la firma de la función primero incluye los argumentos no predeterminados y luego los argumentos predeterminados. Los argumentos no predeterminados están a la izquierda y los predeterminados están a la derecha.

Archivo positive-exp.php:

Ya para terminar vamos a ver esta función artesana de exponenciación de números positivos. Si le pasamos dos argumentos, la función power entiende que el primero de ellos es la base y el segundo es el exponente.

En cambio, si le pasamos solo un argumento, entonces entiende que se trata de la base y que el exponente es 0, por lo que siempre devolverá 1 porque claro, cualquier número elevado a 0 da como resultado uno.

0 comentarios

¿Me dejas un comentario? ¡Gracias!

Deja un comentario

Los campos obligatorios están marcados con *