segunda-feira, 24 de novembro de 2014

[Resolvido] Fatal error: Using $this when not in object context in PHP

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!

Um comentário:

  1. A pergunta é: porque declarar um método estático? Um método é estatico para voce poder instanciar o objeto direamente, sem a classe.
    Se 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.
    =]

    ResponderExcluir