Olá, nós estamos de volta, hehe.
Bom, esta semana eu tive alguns probleminhas com POO (programação orientada a objetos) do qual eu não sabia/conseguia como instanciar uma classe dentro dela mesmo.
Com a ajuda da lista PHP do google o Alexandre Gaigalas me deu o tok do self
Irei falar sobre o self mais a frente, quando eu for explicar sobre métodos estáticos.
O código que ele me mandou foi este:
*class* Teste
{
public function __construct() {
$nova_instancia = new *self*(); //Exemplo 1
$outra_instancia = new *Teste*(); //Assim também funciona
}
}
O por que ele colocou estes * (asteriscos) eu não sei. Mais eu mudei para minha necessidade, assim:
public static function login($login,$senha) {
//verifica o login
.
.
.
return new self($matricula);
}
Como não conseguimos dar um new na classe que eu estava (Usuario). Tive que usar a palavra reserva self para dizer que era esta mesma classe que eu precisava instanciar.
Até mais.
provavelmente, como php é linguagem de script, no meio da interpretação da classe ele ainda não deve ter como reconhecê-la, então essa palavra chave self deve ser algum coringa para o interpretador.