Hay un motivo pero la explicación es larga.
Actualmente enfrento un hecho poco usual: estoy reescribiendo un plugin de WordPress y aumentando sus funciones, de manera que el programador que lo use obtenga una serie de recursos para generar funciones derivadas. Para ello decidí seguir
el consejo de Abimael: convertir las actuales funciones en una sola clase. Pero ya ustedes saben que en el presente estoy
raspao con POO. Eso me ha limitado mucho, y ha ocasionado que la nueva versión tarde en liberarse. Estoy avanzando con el tema pero creo que me tomará todo este año y parte del siguiente dominarlo a cabalidad, pero el plugin debe salir más temprano, pues las nuevas versiones de WP lo están dejando atrás.
Sin embargo, el forzado "(object)" me permite darle al usuario la opción de utilizar el método
$array->clave (que es el que se empleará cuando por fin el código se oriente a objetos) y con ello evitar que en un futuro deban desbaratar todo su trabajo secundario para adaptarse al nuevo método.
Porque si dejo las cosas como están y pongo al usuario a escribir
$array['clave'] me veré en la necesidad de adjuntar funciones tipo "legacy" para impedir que el sitio se les venga abajo una vez hayan actualizado (y en consecuencia todos se acuerden de la que me parió). Un archivo "deprecated.php" del cual no voy a poder salir jamás en la vida.
Tal como lo estoy viendo desde aquí, el uso de
$array->clave me basta para construir la mini-api que tengo planeada y que ocasione el menor impacto a futuro.
Y una de esas funciones demanda algo como lo expuesto arriba.
De todas formas, si a alguien se le ocurre una idea alterna para salir de este paso, bienvenida sea. Como información adicional
Este tópico también está relacionado con el proyecto y
aquí pueden visualizar el archivo en el trac de WordPress.