5 out

PHP: O que é ‘T_PAAMAYIM_NEKUDOTAYIM’?

Fabio Mazzarino - 05/out/2007

Doses Diárias, Segurança -

D’oh

Programando em PHP recebi uma mensagem deveras enigmática:

Parser error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /var/www/virtual/mecca.lib/htdocs/includes/DBConn.inc.php on line 25

E agora? Que porcaria de erro é este?


Sem entender muito fui verificar o código:

if (DBError::isError($self::$_instance))
    throw new Exception('Cannot connect to database: ' .
        self::$instance->getMessage());

Descobri que ao invés de $self::$_instance eu deveria usar self::$_instance. Problema resolvido. Em parte. Ainda preciso descobrir o que quer dizer T_PAAMAYIM_NEKUDOTAYIM.

Em uma pesquisa no Google fui descobri um fórum discutindo o erro. Só então fui descobrir. O erro está em hebreu, e quer dizer o seguinte:

  • PAAMAYIM – duplicado
  • NEKUDOTAYIM – dois pontos

Vá saber…

Tags: , ,

Comentários

15 Comentários to “PHP: O que é ‘T_PAAMAYIM_NEKUDOTAYIM’?”
Fabio via Rec6:
outubro 5th, 2007 às 12:33 pm

PHP: O que é “T_PAAMAYIM_NEKUDOTAYI”…

Programando em PHP recebi uma mensagem deveras enigmática. Saiba o que quer dizer “T_PAAMAYIM_NEKUDOTAYI” no blog DosesDiárias…


Marcio:
outubro 17th, 2007 às 10:02 pm

Vai saber de onde tiram essas mensagens!!!! Só para saber em qual forúm vc achou a tradução disso? Posso precisar de algo parecido um dia….


Anderson:
janeiro 11th, 2008 às 2:11 pm

Eu li em algum lugar que isso ocorre pq o php é baseado no Zend Engine. É um erro do Zend, e não especificamente do php, e o zend seria o responsável por tal mensagem.


Arno:
março 11th, 2008 às 11:18 pm

T_PAAMAYIM_NEKUDOTAYIM significa dois pontos, ou seja “::” acesso a um atributo estatico numa classe.


Leandro:
maio 12th, 2008 às 9:03 am

Puts!
e aí??
qual a solução? recebi o mesmo erro ao tentar acessar uma função declarada como public static function insert( AssinanteVO $objVo )

assim $assinanteDAO::insert($assinante);

me deu este erro
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in C:\wamp\www


Fabio Mazzarino:
maio 16th, 2008 às 10:42 am

Leandro:

Vc tem que fazer assim:

assinanteDAO::insert($assinante)

Se for um método estático da classe. Ou

$assinanteDAO->insert($assinante) se for um objeto chamando um método.


Vitor:
dezembro 11th, 2008 às 10:26 pm

Eu recebi o erro ao esquecer o $ na variável ordem, no argumento de list.

list(list(ordem)) = $db->select(“PRODUTO_$area”,”ORDEM”,”(ID = $id)”);

vai saber…


Matheus Cassiano:
abril 22nd, 2009 às 3:18 pm

Percebendo seu erro, você não devia usar arquivos *.inc pra colocar as conf do DB;


Fabio Mazzarino:
abril 22nd, 2009 às 3:38 pm

Matheus:

Exatamente. Eu estava fazendo um tipo de Singleton pra conexão de base de dados. Assim eu não preciso ficar passando o objeto como parâmetro.

Hj eu não preciso mais disso, posso usar a função de Singleton do MDB2 do PEAR.


Hugo:
novembro 10th, 2009 às 9:43 am

recebi esta mensagem ao tentar ler um array com foreach instanciando uma constante por engano, ao invés de uma variável:

foreach($dados as item){

}

Percebam que item está sem o $…

Mas bem que mensagem de erropoderia ser mais específica.


William:
janeiro 11th, 2010 às 8:16 am

Tambem recebi este erro esquisito ao fazer exatamente isso:

if (empty(SID)) {
session_start();
}

eu simplesmente mudei para
if (defined(SID)) {
if (SID == “”) {
session_start();
}
}

Esquisito mesmo ¬¬


x:
fevereiro 17th, 2012 às 10:30 am

atualize a versão de php do seu sevidor.! fácil.


Andre Mesquita:
março 22nd, 2012 às 12:57 am

Resolvi o código:

if (version_compare(PHP_VERSION, ’5.3.0′) >= 0) {
return $handlerToLoad::getInstance();

com

if (version_compare(PHP_VERSION, ’5.3.0′) >= 0) {
return $handlerToLoad->getInstance();


Tiago Vergutz:
maio 29th, 2012 às 7:35 am

Realmente Andre, parece que esta sintaxe é válida no PHP 5.3.0 eu percebi isso porque na minha maquina utilizo o 5.3 e quando mandei para o servidor que utiliza 5.2.1 o erro apareceu


Adriano Ricardo:
agosto 9th, 2013 às 7:21 am

Eu tive este problema com o Zend Framework, em meu servidor local o problema não acontecia, mas no servidor web apresentava este erro, era no tratamento dos resultados da classe Zend_Auth_Result, onde colocava as possível respostas em um switch como, por exemplo, case $result::FAILURE_IDENTITY_NOT_FOUND;, só que desta forma não funcionava, então no lugar da variável $result que recebia a instância do objeto eu utilizei a própria classe ficando case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND; e então o problema desapareceu ;)


Deixe Seu Comentário

Pesquisar


Publicidade

  • Links

    • An error has occurred; the feed is probably down. Try again later.