PHP: O que é ‘T_PAAMAYIM_NEKUDOTAYIM’?
Fabio Mazzarino - 05/out/2007
Doses Diárias, Segurança -

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…
Comentários
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…
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….
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.
março 11th, 2008 às 11:18 pm
T_PAAMAYIM_NEKUDOTAYIM significa dois pontos, ou seja “::” acesso a um atributo estatico numa classe.
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
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.
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…
abril 22nd, 2009 às 3:18 pm
Percebendo seu erro, você não devia usar arquivos *.inc pra colocar as conf do DB;
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.
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.
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 ¬¬
fevereiro 17th, 2012 às 10:30 am
atualize a versão de php do seu sevidor.! fácil.
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();
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
Deixe Seu Comentário