PHP

Quando usar o self ou $this em PHP

10 de julho de 2020

Quando usar o self ou $this em PHP

Neste artigo vamos aprender quando usar o self ou $this em PHP – com as melhores práticas para você nunca ficar em dúvida

quando usar self ou this php capa

Fala programador(a), tudo bem? Bora aprender mais sobre PHP e orientação a objetos!

Primeiramente é bom entender qual o objetivo de cada uma das instruções

  • self: esta instrução vai fazer referência a uma classe;
  • $this: o this se refere ao objeto que você está utilizando

Vamos ver na prática cada um dos casos!

Utilizando o self

O self vamos utilizar para acessar os métodos estáticos de alguma classe

Podendo assim executar a sua lógica no nosso software

Veja:

<?php

class Teste {
    
    static function utilizandoSelf() {
        echo "É assim que se utilizar o self";	
    }

    public function olaMundo() {
        self::utilizandoSelf();	
    }
    
}

$t = new Teste();

$t->olaMundo();

Aqui estamos chamando o método estático pelo outro método que existe na classe, assim acessamos ele via ::self

Utilizando o $this

Já com o $this nós podemos acessar as propriedades e métodos do objeto

Veja na prática:

<?php

class Teste {

    public $propriedade = "Chamando propriedade";
    
    public function olaMundo() {
        $this->testandoMetodo();
        echo $this->propriedade;
    }
    
    public function testandoMetodo() {
        echo "Chamando método";
    }
    
}

$t = new Teste();

$t->olaMundo();

Desta maneira, chamamos um método e uma propriedade com o $this

Lembrando que dessa forma acessamos o próprio objeto, ou seja, as propriedades e métodos podem gerar valores diferentes a cada objeto instanciado

Conclusão

Neste artigo vimos quando usar o self ou $this em PHP

O self serve para acessar métodos estáticos de uma classe

Já o $this utilizamos para acessar os métodos e propriedades de uma instância de um objeto

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x