Quando usar self vs $this em PHP?
Em PHP, a palavra-chave “self” e o operador “$this” são usados em contextos diferentes e têm propósitos diferentes.
O “self” é usado dentro de uma classe para se referir à própria classe. É usado principalmente para acessar propriedades e métodos estáticos da classe. Por exemplo:
class Exemplo {
public static $propriedadeEstatica = 'valor';
public static function metodoEstatico() {
echo self::$propriedadeEstatica;
}
}
Exemplo::metodoEstatico();Neste exemplo, usamos “self::$propriedadeEstatica” para referenciar a propriedade estática da própria classe.
Por outro lado, o “$this” é usado dentro de um objeto para se referir à instância atual da classe. É usado para acessar propriedades e métodos não estáticos da classe. Por exemplo:
class Exemplo {
public $propriedade = 'valor';
public function metodo() {
echo $this->propriedade;
}
}
$objeto = new Exemplo();
$objeto->metodo();Neste exemplo, usamos “$this->propriedade” para referenciar a propriedade do objeto atual.
Portanto, a regra geral é usar “self” para acessar elementos estáticos da classe (métodos, propriedades), enquanto “$this” é usado para acessar elementos não estáticos da classe em um objeto específico. É importante lembrar que o “self” não está associado a uma instância específica, mas sim à classe em si.