En ocasiones nos vemos en la necesidad de comprobar la coincidencia entre un valor y muchas posibilidades en php. Para eso se usa la conocida función switch: Esta función nos permite definir que acciones llevar a cabo en cada posible caso de coincidencia.
Por lo general usamos esta función para comprobar distintos posibles valores de una variable y lanzar distintas acciones dependiendo de cada caso:
Pero switch actualmente ya no está limitado a comprobar variables sino que puede comprobar expresiones o incluso valores directamente definidos. Además, los distintos casos tampoco están restringidos a valores concretos y en ellos podemos hacer comparaciones o llamadas a funciones.
Para el caso que nos ocupa, en ocasiones nos encontramos con que nuestras posibilidades a comprobar pasan por varias llamadas a distintas funciones en las que sólo queremos comprobar cual de ellas devuelve un valor específico que será el que nos indique las acciones a tomar. Para estos casos switch también puede ayudarnos.
Pondré el ejemplo de wordpress con sus famosas funciones condicionales. Imaginemos que lo que queremos es comprobar si estamos en la home, en una categoría, en un tag, o en un post para mostrar un mensaje… solo debemos ver cual de esas funciones nos devuelve «true»:
Claro y útil, ¿no?
El problema de esta estructura es que no es la forma común de hacer las cosas y por lo tanto para el trabajo en equipos que comparten código no es lo más aconsejado.