strip_tags - PHP y sensibilidad de caso
strip_tags wordpress (4)
¿Por qué PHP es parcialmente sensible al caso?
Solo puedo especular que esto proviene de versiones muy tempranas, probablemente PHP / FI 2.0. El manual declara explícitamente:
Tenga en cuenta que los nombres de funciones de PHP / FI no distinguen entre mayúsculas y minúsculas.
La mayoría de las entradas del usuario, como los parámetros GET y POST, siempre se han registrado como variables globales, en ese entonces. Tratar a estos como insensibles a mayúsculas y minúsculas probablemente habría causado problemas, y supuestamente, por lo tanto, todas las variables se han tratado como sensibles a mayúsculas y minúsculas.
Por lo que puedo decir, estos han sido los únicos tipos de identificadores en PHP / FI 2.0. Todos los demás se han introducido más tarde, aparentemente imitando los nombres de funciones insensibles a mayúsculas.
Las constantes, que son especiales, solo se han introducido a partir de PHP 4 (el manual de PHP 3 menciona "constantes", pero hoy en día se las denomina "literales"). Por alguna razón misteriosa (tal vez no se pudo encontrar un consenso), se decidió permitir que los identificadores constantes se define()
mayúsculas y minúsculas en la discusión de los desarrolladores. Curiosamente, si bien define()
defecto a las constantes sensibles a mayúsculas y minúsculas, las contrapartes en C respectivas ( REGISTER_*_CONSTANT
) se establecen por defecto en mayúsculas y minúsculas.
En PHP, los nombres variables y constantes distinguen entre mayúsculas y minúsculas, mientras que los nombres de funciones no lo son.
Que yo sepa, PHP es el único lenguaje en el que esto sucede. Todos los demás idiomas que he usado son totalmente sensibles a las mayúsculas y minúsculas o totalmente no sensibles a las mayúsculas.
¿Por qué PHP es parcialmente sensible al caso?
Tenga en cuenta que no estoy preguntando qué nombres distinguen entre mayúsculas y minúsculas, sino por qué .
Los nombres de clase también distinguen entre mayúsculas y minúsculas, como acabo de notar en un código heredado de trabajo.
Este comportamiento también se informa aquí: letras mayúsculas en el nombre de clase PHP
Distingue mayúsculas y minúsculas
variables, constantes, claves de matriz, propiedades de clase, constantes de clase
Mayúsculas y minúsculas
funciones, constructores de clase, métodos de clase, palabras clave y construcciones (if, else, null, foreach, echo etc.)
Distinguir entre mayúsculas y minúsculas (definido por el usuario y definido por PHP)
- variables
- constantes
- claves de matriz
- propiedades de clase
- constantes de clase
Insensible a mayúsculas y minúsculas (definido por el usuario y definido por PHP)
- funciones
- constructores de clase
- métodos de clase
- palabras clave y construcciones (if, else, null, foreach, echo etc.)
En php.net
Lo esencial
Las variables en PHP están representadas por un signo de dólar seguido del nombre de la variable. El nombre de la variable distingue entre mayúsculas y minúsculas.
Los nombres de variables siguen las mismas reglas que otras etiquetas en PHP. Un nombre de variable válido comienza con una letra o un guión bajo, seguido de cualquier número de letras, números o guiones bajos. Como expresión regular, se expresaría así: ''[a-zA-Z_/x7f-/xff][a-zA-Z0-9_/x7f-/xff]*''
Algunos enlaces útiles
- Guía de nombres de Userland
- ¿Por qué las funciones y los métodos en PHP no distinguen entre mayúsculas y minúsculas?
- ¿Son las funciones de PHP sensibles a mayúsculas y minúsculas?
- ¿Las palabras clave de PHP distinguen entre mayúsculas y minúsculas?
- ¿Los nombres de funciones de PHP distinguen entre mayúsculas y minúsculas o no?
- Fuente de PHP Case Sensitive