Задать вопрос
Driver86
@Driver86
Немодератор toster.ru

В чём разница между self и «ClassName»?

class A {
    public static $var = 1;
    public function hello() {
        echo self::$var;
        echo A::$var;
    }
}

Чем отличаться тут будут self::$var и A::$var ?
  • Вопрос задан
  • 494 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
knetesin
@knetesin
Шпион
A::$var
вызов в контексте класса A

self::$var
вызов в контексте класса в котором определенно (в данном случае класса А)

static::$var
вызов в контекста текущего класса
т.е в случае с наследованием:
- если у вас будет класс B который наследуется от класса A и в котором будет переопределенно $var, оно будет использоваться,
- в случае с self, будет использоваться переменная оттуда где вызван self

т.е в вашем конкретном случае ничем, но лучше использовать static
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы