parametros - ¿Por qué las funciones y métodos en PHP no distinguen entre mayúsculas y minúsculas?
llamar funcion php desde otro php (2)
Las funciones y métodos en PHP no distinguen entre mayúsculas y minúsculas, como se ilustra en el siguiente ejemplo.
function ag()
{
echo ''2'';
}
Ag();
class test {
function clMe()
{
echo ''hi'';
}
}
$instance = new test;
$instance->clme();
Pero ese no es el caso con las variables. ¿Cuál es el razonamiento?
Permítanme citar de Interview - Creador de PHP, Rasmus Lerdorf
La primera versión de PHP fue un conjunto simple de herramientas que reuní para mi sitio web y para un par de proyectos. Una herramienta hizo un registro de golpe de lujo a una base de datos mSQL, otra actuó como un intérprete de datos de formulario. Terminé con aproximadamente 30 diferentes programas pequeños de CGI escritos en C antes de que me cansara de ellos, y los combiné a todos en una única biblioteca de C. Luego escribí un analizador muy simple que seleccionaba las etiquetas de los archivos HTML y las reemplazaba con la salida de las funciones correspondientes en la biblioteca C.
El analizador simple creció lentamente hasta incluir etiquetas condicionales, etiquetas de bucle, funciones, etc. En ningún momento pensé que estaba escribiendo un lenguaje de scripting. Simplemente estaba agregando un poco de funcionalidad al analizador de macro-remplazo. Todavía estaba escribiendo toda mi lógica comercial real en C.
He leído en alguna parte que dado que todas las funciones introducidas esencialmente se sienten como etiquetas en un documento HTML y dado que las etiquetas HTML no distinguen entre mayúsculas y minúsculas, eligió los nombres de las funciones en PHP para que no distingan entre mayúsculas y minúsculas. Más tarde, esta característica se mantuvo en el idioma.
Sí, los nombres de funciones y métodos no distinguen entre mayúsculas y minúsculas.
Y sí, los nombres de variables distinguen mayúsculas de minúsculas.
No estoy seguro de que haya una razón para eso, excepto que ha sido así durante mucho tiempo y, por lo tanto, sigue siendo así por razones de compatibilidad con versiones anteriores.
Como referencia, un par de enlaces / citas de varias páginas del manual:
Para funciones ( quoting ) :
Nota: Los nombres de las funciones no distinguen entre mayúsculas y minúsculas, aunque suele ser una buena forma de llamar a las funciones tal como aparecen en su declaración.
Y los métodos no son mucho más que funciones en objetos, especialmente cuando pensamos en PHP 4 y la compatibilidad con versiones anteriores.
Y, para variables ( quoting ):
Las variables en PHP están representadas por un signo de dólar seguido del nombre de la variable. El nombre de la variable es sensible a mayúsculas y minúsculas.
Y las propiedades de objeto no son mucho más que variables en objetos: el mismo comentario sobre PHP 4 y compatibilidad hacia atrás.