Avatar ·

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! <<>>

Diferencia principal: self