Quando usar self e quando usar $this em PHP? Diferença e exemplos
Olá a todos! Comecei a estudar OOP em PHP e não consigo entender a diferença entre `self` e `$this`. Ambos parecem ser usados dentro da classe para acessar propriedades e métodos, mas estou sempre confuso.
Aqui está um exemplo do meu código:
```php
class User {
public $name = 'Convidado';
public static $count = 0;
public function setName($name) {
$this->name = $name; // por que não self?
}
public static function getCount() {
return self::$count; // por que não $this?
}
}
```
Quando escrevo `$this->name` — funciona. Mas se escrevo `self::$name` — aparece um erro. E com a propriedade estática é o contrário: `self::$count` funciona, mas `$this->count` — não.
Li o manual, mas é muito complicado. Expliquem em palavras simples: quando usar `self::` e quando usar `$this->`? E por que eles se comportam de forma diferente? Estou especialmente interessado no caso de herança — ouvi dizer que há armadilhas.
Agradeço desde já pela ajuda!
<<>>