Trocando o $this do php4 por self no php5

publicado em 29 de Outubro de 2008

Estava criando uma classe em um servidor de um cliente. Como sempre, utilizo métodos ou atributos de uma mesma classe chamando por $this. E tive o mesmo problema que o Tiago Floriano. Eu estava desatualizado na linguagem e tive um problema de sintaxes.

Mesmo sendo tudo php, o php5 melhorou sua performance e desempenho, principalmente com questões de OOP. Com isso, algumas sintaxes foram re-estruturadas.

Por isso, o meu código estava aparecendo o seguinte erro: Fatal error: Using $this when not in object context in

Depois de muito pesquisar no pai dos burros, encontrei a solução. Descobri que trocando o $this->nomeDoMetodo() por self::nomeDoMetodo() funcionaria no php5.

Mas para mim, não basta ter apenas a solução. Portanto pesquisei mais sobre php5 e sua "nova" estrutura de Classes. Que é Composta por Encapsulamento(Public, Protected e Private), Constantes de Classe, Interfaces e Propriedades Estáticas(que é o caso do $this), o Design Pattern Singleton que é muito interessante e outros conceitos que pretendo abordar logo mais.

Se você é tão curioso quanto eu, ou apenas gosta de atualizar-se, leia este material completo em PDF que absorve bastante sobre OOP(Programação Orientada a Objetos) em PHP5.