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

Область видимости (или видимость) определяет, где в коде можно получить доступ к переменным, функциям и другим объектам. В 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.
🟠Публичная область видимости
Свойства и методы доступны отовсюду.
🟠Защищённая область видимости
Свойства и методы доступны только внутри класса и его наследников.
🟠Приватная область видимости
Свойства и методы доступны только внутри класса, в котором они объявлены.

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