TGViewer
PHP | Вопросы собесов PHP | Вопросы собесов @easy_php_ru · 2.3K subscribers
Post #2165 380
🤔 Что делают 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"


Ставь 👍 и забирай 📚 Базу знаний
  • 👍 3
  • 🔥 1
More from @easy_php_ru
  1. Oct 13, 2026🤔 Что такое namespaces Namespaces в PHP — это способ организации кода для предотвращения…
  2. Oct 13, 2026🤔 Чем отличается Require от Includ'а? В PHP есть две схожие конструкции для подключения ф…
  3. Oct 13, 2026Post #2474
  4. Oct 12, 2026🤔 Что такое инкремент и декремент? Инкремент (`++`) и декремент (`--`) — это операции в P…
  5. Oct 12, 2026🤔 Как устроен типичный тест на opening point? Тест на Opening Point (OP-тест) используетс…
  6. Oct 11, 2026🤔 Для чего нужен middleware? Middleware — это промежуточный слой между запросом клиента и…
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 →