TGViewer
PHP | Вопросы собесов PHP | Вопросы собесов @easy_php_ru · 2.3K subscribers
Post #1890 513
🤔 Что делают self и static?

В PHP self и static используются внутри классов для обращения к их свойствам и методам, но работают по-разному. Давайте разберёмся в их назначении и отличиях.

🚩self

Используется для обращения к собственным методам и свойствам класса. Оно не учитывает наследование и всегда ссылается на тот класс, в котором написано.
class A {
public static function who() {
echo "Я класс A\n";
}

public static function call() {
self::who(); // Вызываем метод who() внутри того же класса
}
}

class B extends A {
public static function who() {
echo "Я класс B\n";
}
}

B::call(); // Выведет: "Я класс A", а не "Я класс B"


🚩static

Работает динамически, учитывает класс, из которого вызван метод. Это полезно в наследовании.
class A {
public static function who() {
echo "Я класс A\n";
}

public static function call() {
static::who(); // Используем static вместо self
}
}

class B extends A {
public static function who() {
echo "Я класс B\n";
}
}

B::call(); // Выведет: "Я класс B"


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 2
More from @easy_php_ru
  1. Oct 16, 2026🤔 Что такое агрегат? Агрегат – это термин, часто используемый в области баз данных и прог…
  2. Oct 15, 2026🤔 Что такое замыкание? Это функция, которая «захватывает» переменные из внешней области в…
  3. Oct 15, 2026🤔 Что есть кроме микросервисной и монолитной архитектуры? Помимо монолитной и микросервис…
  4. Oct 14, 2026🤔 В чём суть абстрактного класса? Абстрактный класс — это класс, который нельзя инстанцир…
  5. Oct 14, 2026🤔 В чем принцип работы HashTable? Хеш-таблица – это структура данных, которая хранит пары…
  6. Oct 13, 2026🤔 Что такое namespaces Namespaces в PHP — это способ организации кода для предотвращения…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →