TGViewer
PHP | Вопросы собесов PHP | Вопросы собесов @easy_php_ru · 2.31K subscribers
Post #2440 225
🤔 Какие бывают области видимости?

Область видимости (или видимость) определяет, где в коде можно получить доступ к переменным, функциям и другим объектам. В PHP есть несколько видов областей видимости, которые контролируют доступность этих элементов в разных частях программы.

🚩Основные области видимости


🟠Локальная область видимости
Переменные, объявленные внутри функции, имеют локальную область видимости и доступны только внутри этой функции.
<?php
function test() {
$localVar = "I'm local";
echo $localVar; // Выведет "I'm local"
}
test();
echo $localVar; // Ошибка: переменная не найдена
?>


🟠Глобальная область видимости

Переменные, объявленные вне функций и классов, имеют глобальную область видимости и доступны везде в скрипте, кроме внутренних областей видимости (например, внутри функций), если не использовать ключевое слово global.
<?php
$globalVar = "I'm global";

function test() {
global $globalVar;
echo $globalVar; // Выведет "I'm global"
}

test();
?>


🟠Область видимости функций и методов
Переменные, объявленные внутри функции или метода класса, имеют свою локальную область видимости и не видны за её пределами.
<?php
class Test {
public function method() {
$localVar = "I'm local in method";
echo $localVar; // Выведет "I'm local in method"
}
}

$test = new Test();
$test->method();
echo $localVar; // Ошибка: переменная не найдена
?>


🟠Область видимости классов
Публичная (public)

Публичные свойства и методы доступны отовсюду: как внутри класса, так и вне его.
<?php
class Test {
public $publicVar = "I'm public";

public function publicMethod() {
echo $this->publicVar;
}
}

$test = new Test();
echo $test->publicVar; // Доступно и выведет "I'm public"
$test->publicMethod(); // Доступно и выведет "I'm public"
?>


🟠Защищённая (protected)
Защищённые свойства и методы доступны только внутри класса и его наследников.
<?php
class Base {
protected $protectedVar = "I'm protected";

protected function protectedMethod() {
echo $this->protectedVar;
}
}

class Derived extends Base {
public function accessProtected() {
echo $this->protectedVar; // Доступно
$this->protectedMethod(); // Доступно
}
}

$derived = new Derived();
$derived->accessProtected(); // Выведет "I'm protected"
// echo $derived->protectedVar; // Ошибка: доступ запрещен
// $derived->protectedMethod(); // Ошибка: доступ запрещен
?>


🟠Приватная (private)
Приватные свойства и методы доступны только внутри класса, в котором они объявлены, и недоступны в наследниках.
<?php
class Test {
private $privateVar = "I'm private";

private function privateMethod() {
echo $this->privateVar;
}

public function accessPrivate() {
$this->privateMethod(); // Доступно
}
}

$test = new Test();
$test->accessPrivate(); // Выведет "I'm private"
// echo $test->privateVar; // Ошибка: доступ запрещен
// $test->privateMethod(); // Ошибка: доступ запрещен
?>


🟠Локальная область видимости
Переменные доступны только внутри функции или метода, где они объявлены.
🟠Глобальная область видимости
Переменные доступны везде в скрипте, кроме внутренних областей видимости, если не используется global.
🟠Публичная область видимости
Свойства и методы доступны отовсюду.
🟠Защищённая область видимости
Свойства и методы доступны только внутри класса и его наследников.
🟠Приватная область видимости
Свойства и методы доступны только внутри класса, в котором они объявлены.

Ставь 👍 и забирай 📚 Базу знаний
More from @easy_php_ru
  1. Oct 9, 2026🤔 Как настроить autoload через Composer? Composer предоставляет механизм автоматической з…
  2. Oct 9, 2026🤔 Какое отличие у протоколов tcp и udp? Это два основных транспортных протокола в интерне…
  3. Oct 8, 2026🤔 Есть ли какое-то различие между одинарными и двойными кавычками? - В большинстве языков…
  4. Oct 7, 2026🤔 В каких случаях используют индексы? Индексы в базах данных используются для ускорения о…
  5. Oct 7, 2026🤔 В чем преимущество фасада? Фасад (Facade) в PHP — это паттерн проектирования, который у…
  6. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для 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 →