Sobes.tech
Back to questions
Junior — Middle
89

Можете объяснить отличия между ключевыми словами self и this в программировании?

Answer from AI

sobes.tech AI

В PHP ключевые слова self и this используются для обращения к элементам класса, но имеют разные контексты:

  • this — это ссылка на текущий экземпляр объекта. Используется внутри методов объекта для доступа к его свойствам и методам.

  • self — это ссылка на сам класс, используется для доступа к статическим свойствам и методам внутри класса.

Пример:

class Example {
    public $instanceVar = 'instance';
    public static $staticVar = 'static';

    public function instanceMethod() {
        echo $this->instanceVar; // обращение к свойству объекта
    }

    public static function staticMethod() {
        echo self::$staticVar; // обращение к статическому свойству класса
    }
}

$obj = new Example();
$obj->instanceMethod(); // выводит 'instance'
Example::staticMethod(); // выводит 'static'

Таким образом, this используется для работы с конкретным объектом, а self — для работы с классом в целом.