Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luan Patric

[Resolvido] Erro, expecting T_NS_SEPARATOR

Recommended Posts

eai galera é o seguinte com a nova versao do php meu site comecou apresentar o seguinte erro:

 

Parse error: syntax error, unexpected '(', expecting T_NS_SEPARATOR in /home/public_html/noticia/inc/mod/editnews.mdu on line 658

 

abaixo parte do script que provavelmente esta com erro

 

// ********************************************************************************
// Do add News to DB
// ********************************************************************************
if ($action == 'doeditnews'){
if (($added_time = strtotime($day.' '.$month.' '.$year.' '.$hour.':'.$minute.':'.$second)) == -1){
	$added_time = (time() + $config_date_adjust * 60);
}

if (!$title){
	$title = substr($short_story, 0, 10).'...';
}

run_actions('edit-save-entry');

$sql->update(array(
'table'	 => 'news',
'where'	 => array("id = $id"),
'values' => array(
			'date'	   => $added_time,
			'title'	   => replace_news('add', $title),
			'short'	   => strlen(replace_news('add', $short_story)),
			'full'	   => strlen(replace_news('add', $full_story)),
			'avatar'   => $avatar,
			'category' => $category,
			'url'	   => ($url ? namespace($url) : namespace(totranslit($title))),
			'hidden'   => (($config_approve_news == 'yes' and $member['level'] > 2) ? true : false)
			)
));

$sql->update(array(
'table'	 => 'story',
'where'	 => array("post_id = $id"),
'values' => array(
			'short' => replace_news('add', $short_story),
			'full'	=> replace_news('add', $full_story)
			)
));

msg('info', $echo['headerEdited'], sprintf($echo['editedComplete'], $title), $PHP_SELF.'?mod=editnews&id='.$id);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não foi isso que eu quis dizer, estou falando sobre:

($url ? namespace($url) : namespace(totranslit($title)))

 

Está parecendo que você vai fazer um update em uma tabela, agora, você não tem nenhuma definição de entrada, do que você precisa fazer .. pega um código por aí .. e apenas executa ..

 

Entretanto, acho que eu nem preciso saber os motivos, agora .. seu problema é com esse namespace aí

Tente remover eles, deixando assim:

($url ? $url : totranslit($title))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porém, dados os parêntese junto à keyword namespace, sabe-se que é função.

 

Como o separador de namespace é a barra invertida e o interpretador encontrou um parêntese, gerou o erro.

 

Se você não quer programar todo o sistema de novo, um workaround bem válido é encontrar a definição dessa função namespace e renomeá-la. Prefixando-a com um "_", por exemplo, já é suficiente.

 

O problema é que depois TODAS as ocorrências dessa função terão de ser atualizadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porém, dados os parêntese junto à keyword namespace, sabe-se que é função.

 

Não tem como você fazer uma função 'namespace' ..

<?php
function namespace ( $x , $y ) {

}

 

Namespace é uma keyword reservada da linguagem, da mesma forma que 'echo' .. 'if' ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entretanto, acho que eu nem preciso saber os motivos, agora .. seu problema é com esse namespace aí

 

Sim, é fato.

 

Certo, e você sabe o que está fazendo aí .. ? sabe o que é 'namespace' ?

 

Então, como você usa uma coisa, sendo que não sabe como funciona .. ?

 

Cuidado Andrey, você não leu o tópico direito. :nataldry:

 

eai galera é o seguinte com a nova versao do php meu site comecou apresentar o seguinte erro:

 

este script ja veio pronto, e sempre funcionou só que agora o servidor mudou a versao do PHP ai comecou apresentar esses errros =).

 

Se tivesse lido com cuidado, teria percebido que o servidor dele rodava com uma versão do PHP inferior ou igual ao 5.2

 

Nessa versão do PHP, namespace não era uma palavra reservada.

 

E outra, não faz o menor sentido isso, você apenas pegou um código e executou, pretende que funcione perfeitamente da forma que você quer, mas não é assim que funciona ..

 

Errado novamente, Andrey.

 

...e sempre funcionou só que agora o servidor mudou a versao do PHP ai comecou apresentar esses errros =).

 

Ou seja, isso é um problema de suporte legado.

 

Você utilizou um namespace, sem ao menos saber o que é, ou pra que serve, podia ter perguntado antes ..

 

Antes de que? Com o PHP 5.2 ou inferior o código não tem problemas, não havia o que perguntar.

 

Luan, você precisará trocar o nome da sua função. Desde a versão 5.3 o nome namespace é reservado e faz parte da estrutura da linguagem PHP, troque para qualquer coisa que faça sentido e atualize os arquivos que utilizam essa função.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porém, dados os parêntese junto à keyword namespace, sabe-se que é função.

 

Não tem como você fazer uma função 'namespace' ..

<?php
function namespace ( $x , $y ) {

}

 

Namespace é uma keyword reservada da linguagem, da mesma forma que 'echo' .. 'if' ..

Não, não. Eu não disse que ele definiu uma função chamada namespace, e sim que ele estava usando um namespace como se fosse uma função, daí os parênteses.

 

Acho que ficou mal explicado mesmo... ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.