Disculpen el título. Nel, ni se que dije.
Bueno... aquí traigo otra de las cosas locas -y divertidas- que me laten de PHP, ya me dirán.
Trabajando un poco en un proyecto que tengo alojado en mi cuenta de GitHub quise darle la vuelta a un problema especifico: diseñar una API que fuese amigable y divertida a la vez, desde luego me refiero al lenguaje mismo y no más.
Así pues descubrí que dos conceptos pueden existir bajo el mismo nombre, y hablo en serio:
function foo() { } class foo { }
¿Y que chingados con eso?
Pues eso, de alguna extraña forma php permite nombrar de la misma manera una función y/o clase. Esto evidentemente nos brinda la posibilidad de escribir una serie scripts de diversa índole bajo el mismo "namespace" o algo parecido.
Vamos a imaginar una librería para manejar sesiones:
session_start(); class session { public static function fetch($item) { return $_SESSION[$item]; } public static function assign($item, $value) { $_SESSION[$item] = $value; } public static function remove($item) { unset($_SESSION[$item]); } } function session($item, $value = NULL) { if (func_num_args() === 1) { return session::fetch($item); } elseif (is_null($value)) { session::remove($item); } else { session::assign($item, $value); } }
En mi experiencia esto facilita las cosas de una forma sumamente agradable y consistente, si no me creen hagan la prueba.
¡Diviertanse!