Задать вопрос
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 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
knetesin
@knetesin
Шпион
A::$var
вызов в контексте класса A

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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽