No, este título tan raro no es producto de un deface de algún hacker indio. Es hebreo (פעמיים נקודתיים), significa doble dos puntos, y es el nombre que recibe el token utilizado por el analizador léxico y el analizador sintáctico de PHP para representar el operador de resolución de ámbito del lenguaje (::), un operador que se utiliza para acceder a miembros estáticos de una clase, y a propiedades y métodos que han sido sobreescritos por una clase al heredar de otra.
«¿Y por qué hebreo?», se preguntará alguno. El motivo es sencillo, y es que, como ya vimos en Una no tan breve historia de PHP, Zeev Suraski y Andi Gutmans, los dos programadores que crearon el Zend Engine, son ambos israelíes.
Os podéis encontrar con este nombre tan críptico, por ejemplo, al utilizar el operador condicional ternario y repetir el carácter de dos puntos por accidente. Si probáis a ejecutar el siguiente código:
<?php $modo = $_SERVER['SERVER_NAME']!=='localhost'?'Debug'::'Producción';
PHP os responderá con un mensaje parecido a este:
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /usr/local/apache/htdocs/ejemplo.php on line 2
Os reto a que pronunciéis «Paamayim nekudotayim» 10 veces seguidas, de carrerilla.
jajaja, IMPOSIBLE!!!!… mentiras, hay que intentarlo muchas veces… la practica hace al maestro jajaja
Os reto a no utilizar variables de entorno sin un filtro 😉
Hombre, teniendo en cuenta que es sólo un ejemplo, y de algo que no funciona…
De todas formas, no se imprime, ni se utiliza en ninguna consulta, ni nada parecido. De poco iba a servir un filtro. Lo que habría que hacer es asegurarse de que
UseCanonicalName
no esté desactivado. Pero bien visto, no se puede uno fiar ni de los valores de$_SERVER
.Aprovecho para dejar un par de artículos que escribí sobre exploits en PHP para el que le interese, por cierto:
XSS
Local y remote file inclusion
Genial, ahora que voy a aprender PHP, cuando me aparezca ese tipo de error, poner :: sin querer, ya sabré lo que significa y no tendré que preguntarlo.
Un saludo. Ah, por cierto, me alegro de haber encontrado este blog con tantísimas cosas curiosas:D
Muchas gracias Aitor 🙂
Israelitas*
¿Eh?
Pingback: El Paamayim nekudotayim de PHP « Ingenieria de Software
Pingback: El Paamayim nekudotayim de PHP - XperienciaWeb