listado - ¿Por qué las funciones integradas en PHP tienen un nombre tan aleatorio?
listado funciones php (10)
Parece que no hay un patrón real en la forma en que se nombran las funciones, str_replace, strrpos, strip_tags, stripslashes son solo algunas.
¿Por qué es este el caso?
EDITAR - esto no fue una publicación tipo "troll" - ¡algo que pienso cada vez que uso el idioma!
Compatibilidad con versiones anteriores y la falta de espacios de nombres, junto con el cambio de idioma.
Esto parece un poco troll-y. Sin embargo, es por compatibilidad con versiones anteriores.
PHP6 abordará la ayuda para abordar estos problemas, así como para brindar soporte completo de UTF-8.
Por compatibilidad con versiones anteriores en muchas versiones de lenguaje
Debido a que el lenguaje creció durante los últimos 14 años desde ''Página de inicio personal'' a uno de los lenguajes de implementación de sitios web más populares. Nadie planeó para todas estas funciones; se agregaron uno a la vez según fuera necesario.
PHP es un lenguaje de script de código abierto "antiguo", de rápido crecimiento. La denominación es solo una cuestión de la larga historia ... No hay una compañía "académica" detrás de PHP como SUN detrás de Java, que controla el nombramiento ...
La respuesta es Evolution o Unintelligent Design. No estoy seguro de cuál;)
Inicialmente, PHP no era más que un lenguaje de scripting sin soporte orientado a objetos (PHP 3), por lo que los nombres de funciones utilizados en PHP hasta la versión 3 y 4 se inspiran principalmente en la sintaxis de PERL. Pero PHP 5 tiene muchas características OO como Reflection, tipo de alusión, interfaz, modificadores de acceso y lista continúa. La mayoría de estas nuevas características están inspiradas en JAVA. Por ejemplo; la implementación de la interfaz y la clase de herencia son las mismas en PHP y JAVA. Por lo tanto, la mayoría de las nuevas funciones con sus convenios y estilos de nombres están basadas en JAVA. Uno puede llamarlo evolución de PHP de un mero lenguaje de scripting a un lenguaje OO algo robusto.
El lenguaje PHP ha crecido un tanto orgánicamente, por lo que la asignación de nombres a las funciones es aleatoria en algunas partes. Muchos de los diferentes formatos se conservan por razones de compatibilidad con versiones anteriores.
Una pequeña digresión, pero además de los problemas con el nombramiento de funciones, otro desafortunado efecto secundario del crecimiento orgánico del lenguaje es una aparente inconsistencia en el orden de los argumentos, por ejemplo, considere las funciones in_array y strstr :
bool in_array (mixed $needle, array $haystack [, bool $strict])
string strstr (string $haystack, mixed $needle [, bool $before_needle=false])
Curiosamente, PHP parece ser internamente consistente con estos ordenamientos en el sentido de que todas las funciones de cadena parecen usar $haystack, $needle
mientras que las funciones de matriz son al revés, pero esto puede tomar un poco de tiempo para alguien nuevo en PHP. Hay una buena publicación en ExpressionEngine hablando sobre este particular capricho en más detalle, así como una discusión sobre la lista de errores de PHP .
A medida que el lenguaje madura, hay varios intentos de implementar una convención de nomenclatura más rígida y consistente, a partir de la documentación de Zend Framework :
Los nombres de las funciones siempre deben comenzar con una letra minúscula. Cuando el nombre de una función consiste en más de una palabra, la primera letra de cada nueva palabra debe estar en mayúscula. Esto se conoce comúnmente como formateo "camelCase".
filterInput ()
getElementById ()
Para una toma ligeramente diferente, de 20 posibles razones por las que los nombres y parámetros de funciones de PHP son raros :
PHP pega APIs y humanos juntos, y a veces esto se vuelve complicado
Las funciones PHP se han desarrollado bajo muchas circunstancias, a veces borrachas
El algoritmo de nomenclatura de función PHP sigue siendo un secreto y no se puede descifrar
PHP eligió darle a la gente algo divertido para quejarse / blog / reír sobre
PHP tiene otros problemas para resolver
Realmente no veo cómo importa. La sintaxis es sintaxis Hay muchos idiomas humanos, inglés para uno, donde no sigue ningún patrón específico pero lo aprendemos independientemente. Se trata de conocer tu sintaxis en lugar de adivinar.
Históricamente, muchas de las funciones son mapas directos de sus contrapartidas en C
, por lo que gran parte de la rareza de denominación y ordenamiento de argumentos en PHP se debe a eso.
Los contribuyentes a PHP generalmente han contribuido al lenguaje para satisfacer sus propias necesidades, por lo que el lenguaje ha crecido de manera orgánica y, a veces, poco disciplinado. Su popularidad también ha significado que se ha esforzado por mantener la compatibilidad con versiones anteriores a lo largo de su ciclo de vida, lo que significa que las malas decisiones sobre el idioma siguen vigentes incluso después de su desaprobación.