Cuándo usar self y cuándo $this en PHP? Diferencia y ejemplos
¡Hola a todos! Empecé a estudiar OOP en PHP y no puedo entender la diferencia entre `self` y `$this`. Parece que ambos se usan dentro de la clase para acceder a propiedades y métodos, pero siempre me confundo.
Aquí hay un ejemplo de mi código:
```php
class User {
public $name = 'Invitado';
public static $count = 0;
public function setName($name) {
$this->name = $name; // ¿por qué no self?
}
public static function getCount() {
return self::$count; // ¿por qué no $this?
}
}
```
Cuando escribo `$this->name` — funciona. Pero si escribo `self::$name` — aparece un error. Y con la propiedad static es al revés: `self::$count` funciona, pero `$this->count` — no.
Leí el manual, pero es demasiado complicado. Explíquenme en palabras simples: ¿cuándo usar `self::` y cuándo `$this->`? ¿Y por qué se comportan de manera diferente? Me interesa especialmente el caso con herencia — escuché que hay trampas.
¡Gracias de antemano por la ayuda!
<<>>