logo

Instanciando uma classe dentro dela mesma

logo

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);
}

Conclusão

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.

Bookmark and Share

Alguém marcou to “Instanciando uma classe dentro dela mesma”

  1. Vinicius disse:

    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.

logo
logo
Hospedado no Djalma | Ruan Carlos.