Pregunta

¿Alguien tiene una T_PAAMAYIM_NEKUDOTAYIM?

¿Fue útil?

Solución

Es el operador de dos puntos dobles :: (ver lista de tokens analizador ).

Otros consejos

Google funciona de maravilla.

Es hebreo para "dos puntos dobles".

Es un nombre para el operador :: en PHP. Literalmente significa "dos puntos dobles". Por alguna razón le dieron el nombre en hebreo. Compruebe la sintaxis del código, y poner un :: en su caso: -)

Wikipedia :

  

En PHP, el operador de resolución de alcance también se llama Paamayim   Nekudotayim (en hebreo: פעמיים נקודתיים), que significa “dos puntos dobles” en   Hebreo.

     

El nombre "Paamayim Nekudotayim" se introdujo en el   Israel y desarrollado Zend Engine 0.5 usado en PHP 3. A pesar de que ha sido   confundiendo a muchos desarrolladores que no hablan hebreo, sigue siendo   siendo utilizado en PHP 5, como en este mensaje de error de ejemplo:

     error de sintaxis, inesperada:

$ -r :: Error de análisis php   T_PAAMAYIM_NEKUDOTAYIM

     

A partir de PHP 5.4, mensajes de error en relación con el operador de resolución de alcance   Todavía incluyen este nombre, pero han aclarado su significado algo:

     

r $ php :: Parse error: syntax error, unexpected '::'   (T_PAAMAYIM_NEKUDOTAYIM)

la documentación de PHP oficial :

  

El Operador de Resolución (también llamado Paamayim Nekudotayim) o en   términos más simples, el doble de colon, es un símbolo que permite el acceso a   propiedades estáticas, constantes, y sobrescritos o métodos de una clase.

     

Al hacer referencia a estos elementos de fuera de la definición de clase, el uso   el nombre de la clase.

     

A partir de PHP 5.3.0, es posible hacer referencia a la clase utilizando una   variable. El valor de la variable no puede ser una palabra clave (por ejemplo propio, del padre   y estática).

     

Paamayim Nekudotayim sería, en principio, parecer una elección extraña para   nombrar un doble colon. Sin embargo, al escribir el Zend Engine 0.5   (Que PHP 3 poderes), eso es lo que el equipo de Zend decidió llamarlo. Eso   en realidad quiere decir doble de colon - en hebreo

Esto también se está viendo cuando se aplica una constante en PHP para la función de vacío ():

if (!empty(SOME_CONSTANT)) {

}

Este fue mi caso. Lo resuelto mediante el uso de lo siguiente:

$string = SOME_CONSTANT;
if (!empty($string)) {

}

Para mí esto sucedió dentro de una función de clase.

En PHP 5.3 y superior $this::$defaults funcionó bien; cuando cambié el código en un servidor que por cualquier razón tenía un número de versión menor que arrojó este error.

La solución, en mi caso, era utilizar la palabra clave en lugar de self $this:

self::$defaults funciona muy bien.

Esto puede suceder en foreachs cuando se utiliza:

foreach( $array as $key = $value )

en lugar de

foreach( $array as $key => $value )

Como se ha dicho aquí, por lo general necesita 5.3. Sin embargo, la forma en que se rompió todas las páginas fue retirando esta línea de nuestro archivo .htaccess.

# Use PHP 5.3
AddHandler application/x-httpd-php53 .php

Tal vez esto es de utilidad para de alguna manera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top