Ola, galera, boa noite!
Hoje me deparei com o seguinte erro ao executar a função php que estou desenvolvendo:
Fatal error: Using $this when not in object context in (endereço do arquivo) on line 60
Após algumas pesquisas na internet, encontrei vários link sobre o assunto e não consegui entender bem qual era a solução, após esfriar a cabeça e olhar detalhadamente o método que estava com erro pude perceber que eu havia deixado o método como static, e p php 5 estava apresentando erro, foi só retirar o static e funcionou 100%.
Resolução: Aparentemente um Métodos statico não conseguem acessar uma variável que esteja fora dele.
class Teste{
$um;
public static acao(){
//O $This->um não vai funcionar.
$this->um = 0;
}
}
class Teste{
$um;
public acao(){
//O $this->um irá funcionar
$this->um = 0;
}
Obrigado Até a próxima!
A pergunta é: porque declarar um método estático? Um método é estatico para voce poder instanciar o objeto direamente, sem a classe.
ResponderExcluirSe nao for algo como configuração ou um enum, nao faz muito sentido.
Nao esqueça de declarar a visibilidade da propriedade como public, private, ou protected.
=]