From af78560bde2ac0ecbd861f51b53c6bdc65ad9ef9 Mon Sep 17 00:00:00 2001 From: Louis-Arnaud Date: Mon, 7 Sep 2026 10:23:14 +0200 Subject: [PATCH] [Sync-En] variables: describe how non-ASCII variable names behave --- language/variables.xml | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/language/variables.xml b/language/variables.xml index a2b6038fc..3a2faac9d 100644 --- a/language/variables.xml +++ b/language/variables.xml @@ -1,6 +1,5 @@ - - + @@ -25,10 +24,26 @@ - PHP no soporta Unicode en el nombre de las variables, sin embargo, algunas codificaciones - de caracteres (como UTF-8) codifican caracteres de tal manera que todos los bytes - de un carácter multibyte están dentro del rango permitido, convirtiéndolo así - en un nombre de variable válido. + Los nombres de variables se comparan byte a byte, no carácter a carácter. + PHP no interpreta ni valida la codificación de los bytes del 128 al 255, y + dos nombres designan la misma variable únicamente si sus bytes son + idénticos. + + + Una consecuencia es que los nombres escritos en UTF-8 funcionan, porque + cada byte de una secuencia multibyte UTF-8 se sitúa dentro del rango + aceptado. Lo mismo ocurre con cualquier codificación cuyos bytes no ASCII + se sitúen todos en ese rango, así como con secuencias de bytes que no + constituyen un texto válido en ninguna codificación. Las codificaciones + que utilizan bytes inferiores a 128 dentro de una secuencia multibyte, + como Shift-JIS o UTF-16, no funcionan. + + + Otra es que dos nombres que se muestran de forma idéntica pueden ser + distintos. ä codificado como U+00E4 y + a seguido de la diéresis combinante U+0308 son + variables diferentes, al igual que un nombre con y sin un espacio + indivisible U+00A0 final.