Pergunta

Alguém tem uma T_PAAMAYIM_NEKUDOTAYIM?

Foi útil?

Solução

É o operador dois pontos duplo :: (veja lista de analisador fichas ).

Outras dicas

O Google faz maravilhas.

É hebraico para "double cólon".

É um nome para o operador :: em PHP. É, literalmente, significa "dois pontos duplo". Por alguma razão eles chamado em hebraico. Verifique a sua sintaxe do código, e colocar um :: caso existam: -)

A partir Wikipedia :

Em PHP, o operador de resolução de escopo é também chamado Paamayim Nekudotayim (Hebrew: ?????? ????????), o que significa “duplo con” em Hebraico.

O nome "Paamayim Nekudotayim" foi introduzido no Israelo-desenvolvido Zend Engine 0.5 usado no PHP 3. Embora tenha sido confuso para muitos desenvolvedores que não falam hebraico, ainda é sendo usado em PHP 5, como neste mensagem de erro exemplo:

$ php -r :: Parse erro: erro de sintaxe, inesperado T_PAAMAYIM_NEKUDOTAYIM

A partir do PHP 5.4, mensagens de erro relativa ao operador de resolução de escopo ainda incluem este nome, mas ter esclarecido seu significado um pouco:

$ php -r :: Parse erro: erro de sintaxe, inesperado '::' (T_PAAMAYIM_NEKUDOTAYIM)

A partir a documentação PHP oficial :

O Âmbito resolução Operator (também chamado Paamayim Nekudotayim) ou em termos mais simples, a dupla do cólon, é um token que permite o acesso a estáticos, constantes, e substituídos propriedades ou métodos de uma classe.

Ao fazer referência a esses itens de fora da definição de classe, o uso o nome da classe.

A partir do PHP 5.3.0, é possível fazer referência a classe usando um variável. O valor da variável não pode ser uma palavra-chave (por exemplo, auto, pai e estático).

Paamayim Nekudotayim, à primeira, parecer uma escolha estranha para nomear um duplo cólon. No entanto, ao escrever o Zend Engine 0.5 (Que poderes PHP 3), que é o que a equipe Zend decidiu chamá-lo. isto realmente significa duplo dois pontos - em hebraico

Isto também está chegando quando você aplica uma constante em PHP para a função empty ():

if (!empty(SOME_CONSTANT)) {

}

Esse foi o meu caso. Eu resolvi-lo usando o seguinte:

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

}

Para mim, isso aconteceu dentro de uma função de classe.

No PHP 5.3 e acima $this::$defaults funcionou bem; quando eu troquei o código em um servidor que, por qualquer motivo tinha um número de versão menor que jogou este erro.

A solução, no meu caso, era usar a palavra-chave self vez de $this:

self::$defaults funciona muito bem.

Isso pode acontecer em foreachs ao usar:

foreach( $array as $key = $value )

em vez de

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

Como foi dito aqui, você geralmente precisa de 5,3. No entanto, a forma como eu quebrei todas as páginas foi removendo essa linha do nosso arquivo .htaccess.

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

Talvez esta seja de uso de alguma forma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top