en
Feedback
PHP | Вопросы собесов

PHP | Вопросы собесов

Open in Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

Show more
2 312
Subscribers
-124 hours
-57 days
-1930 days
Attracting Subscribers
Oct '26
October '26
+2
in 0 channels
September '26
+20
in 0 channels
Get PRO
August '26
+22
in 0 channels
Get PRO
July '26
+38
in 0 channels
Get PRO
June '26
+24
in 1 channels
Get PRO
May '26
+23
in 0 channels
Get PRO
April '26
+21
in 0 channels
Get PRO
March '26
+27
in 0 channels
Get PRO
February '26
+47
in 0 channels
Get PRO
January '26
+42
in 0 channels
Get PRO
December '25
+33
in 0 channels
Get PRO
November '25
+70
in 0 channels
Get PRO
October '25
+44
in 0 channels
Get PRO
September '25
+46
in 0 channels
Get PRO
August '25
+46
in 0 channels
Get PRO
July '25
+52
in 0 channels
Get PRO
June '25
+52
in 0 channels
Get PRO
May '25
+58
in 0 channels
Get PRO
April '25
+82
in 0 channels
Get PRO
March '25
+132
in 3 channels
Get PRO
February '25
+107
in 2 channels
Get PRO
January '25
+125
in 54 channels
Get PRO
December '24
+56
in 1 channels
Get PRO
November '24
+69
in 1 channels
Get PRO
October '24
+186
in 45 channels
Get PRO
September '24
+247
in 249 channels
Get PRO
August '24
+103
in 0 channels
Get PRO
July '24
+200
in 54 channels
Get PRO
June '24
+707
in 244 channels
Get PRO
May '24
+698
in 189 channels
Get PRO
April '24
+471
in 23 channels
Date
Subscriber Growth
Mentions
Channels
06 October0
05 October0
04 October0
03 October+1
02 October0
01 October+1
Channel Posts
🤔 В чём суть абстрактного класса? Абстрактный класс — это класс, который нельзя инстанцировать напрямую, и он предназначен для того, чтобы служить базой для других классов. Он может содержать абстрактные методы, которые должны быть реализованы в классах-наследниках. Абстрактный класс позволяет определять общую функциональность для всех наследников, предоставляя возможность переопределять или дополнять её. Это помогает улучшить структуру кода и избежать дублирования. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

2
🤔 Для чего нужен Синглтон паттерн? 🟠Контроль над созданием объекта Иногда требуется, чтобы у определенного класса был только один экземпляр в течение жизненного цикла программы. Это может быть связано с тем, что данный объект использует значительные ресурсы или имеет состояние, которое должно быть уникальным. 🟠Глобальная точка доступа Синглтон предоставляет простой способ доступа к объекту из любой точки программы. Это упрощает управление состоянием приложения, поскольку все части программы могут взаимодействовать с одним и тем же экземпляром объекта. 🚩Как используется? 1⃣Закрытие конструктора Конструктор объявляется закрытым (private), чтобы предотвратить создание объекта напрямую через оператор new. 2⃣Закрытие клонирования Метод клонирования (magic method __clone()) тоже объявляется закрытым, чтобы запретить клонирование объекта. 3⃣Закрытие десериализации Метод десериализации (magic method __wakeup()) также объявляется закрытым, чтобы предотвратить восстановление объекта из строки. 4⃣Статический метод для получения экземпляра Создается статический метод, который проверяет, существует ли уже экземпляр объекта. Если нет, то создается новый; если да, то возвращается существующий. Пример class Singleton { // Статическое свойство для хранения единственного экземпляра private static $instance; // Закрытый конструктор для предотвращения создания объекта через new private function __construct() {} // Запрет клонирования объекта private function __clone() {} // Запрет десериализации объекта private function __wakeup() {} // Метод для получения единственного экземпляра public static function getInstance() { if (self::$instance === null) { self::$instance = new self(); } return self::$instance; } // Пример метода public function sayHello() { echo "Hello, Singleton!"; } } // Использование синглтона $singleton = Singleton::getInstance(); $singleton->sayHello(); // Выведет "Hello, Singleton!" 🟠Контролируемое создание Конструктор закрыт, поэтому экземпляр можно создать только внутри класса через метод getInstance(). 🟠Глобальная доступность Поскольку метод getInstance() статический, он доступен в любом месте кода, что делает доступ к экземпляру глобальным. 🟠Один экземпляр Проверка в методе getInstance() гарантирует, что будет создан только один экземпляр класса. Ставь 👍 и забирай 📚 Базу знаний
125
3
🤔 Что такое интерфейсы? Интерфейсы в PHP определяют набор методов, которые должны быть реализованы в классах, использующих этот интерфейс. Интерфейсы обеспечивают абстракцию, позволяя разработчикам определять общий функционал для классов, не предоставляя реализации методов. Классы могут реализовывать несколько интерфейсов, что делает их гибким инструментом для организации архитектуры кода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
174
4
🤔 Что такое замыкание? Это функция вместе с окружением, в котором она была создана. Замыкание позволяет функции "запомнить" переменные из внешнего контекста, даже после того, как этот контекст завершил свое выполнение. Это делает замыкания мощным инструментом для создания функций, которые могут работать с данными, доступными во время их создания. 🚩Основные особенности замыканий 🟠Доступ к внешним переменным Функция может использовать переменные из внешнего контекста, в котором она была создана. 🟠Сохранение состояния Замыкания могут сохранять состояние между вызовами. 🟠Инкапсуляция Замыкания могут использоваться для создания частных данных и методов. 🚩Примеры замыканий в различных языках программирования 🟠JavaScript В JavaScript замыкания используются очень часто. Рассмотрим простой пример: function createCounter() { let count = 0; // внешняя переменная return function() { // внутренная функция count++; return count; } } const counter = createCounter(); // создаем замыкание console.log(counter()); // 1 console.log(counter()); // 2 console.log(counter()); // 3 🟠Python В Python замыкания также поддерживаются: def create_counter(): count = 0 def increment(): nonlocal count count += 1 return count return increment counter = create_counter() print(counter()) # 1 print(counter()) # 2 print(counter()) # 3 🟠PHP В PHP замыкания реализуются через анонимные функции и использование use: function createCounter() { $count = 0; return function() use (&$count) { $count++; return $count; }; } $counter = createCounter(); echo $counter(); // 1 echo $counter(); // 2 echo $counter(); // 3 🚩Применение замыканий 🟠Создание фабричных функций Замыкания могут использоваться для создания фабричных функций, которые генерируют другие функции с определенным поведением. 🟠Инкапсуляция Замыкания позволяют скрывать переменные и методы внутри функции, предоставляя интерфейс для взаимодействия с ними. 🟠Обработка событий В языках, таких как JavaScript, замыкания часто используются в обработчиках событий для доступа к контексту, в котором был назначен обработчик. 🟠Мемоизация Замыкания могут использоваться для создания функций, которые запоминают результаты предыдущих вычислений и используют их для ускорения последующих вызовов. Ставь 👍 и забирай 📚 Базу знаний
142
5
Solar JSOC - Флагманский SOC с гарантией Гарантии крупнейшего коммерческого SOCа России теперь доступны вам. Узнать больше #р
Solar JSOC - Флагманский SOC с гарантией Гарантии крупнейшего коммерческого SOCа России теперь доступны вам. Узнать больше #реклама 16+ rt-solar.ru О рекламодателе
179
6
🤔 Что такое Factory? Это паттерн проектирования, который предоставляет способ создания объектов без указания точного класса. • Фабрика скрывает детали создания объектов, предоставляя интерфейс для их создания. • Пример: ShapeFactory может возвращать объекты разных классов (Circle, Square) на основе входных параметров. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
198
7
🤔 Какое отличие у протоколов tcp и udp? Это два основных транспортных протокола в интернете. Они имеют разные характеристики и используются для различных целей. 🚩Основные отличия 🟠Надежность TCP: Обеспечивает надежную передачу данных. Он использует механизмы установления соединения, подтверждение получения (ACK), контроль потерь пакетов, повторную передачу потерянных пакетов и контроль потока. Это гарантирует, что данные будут доставлены корректно и в правильном порядке. UDP: Не обеспечивает надежную передачу данных. Нет подтверждений получения, нет повторной передачи потерянных пакетов и нет контроля потока. Это делает передачу менее надежной, но более быстрой и с меньшими накладными расходами. 🟠Установление соединения TCP: Перед началом передачи данных устанавливается соединение с помощью процедуры "трехстороннего рукопожатия" (three-way handshake). Это означает, что обе стороны сначала обмениваются сигналами SYN и ACK для установления соединения. UDP: Не требует установления соединения. Пакеты (датаграммы) просто отправляются к получателю без предварительного установления соединения. 🟠Порядок доставки TCP: Обеспечивает доставку данных в правильном порядке. Если пакеты приходят в неправильном порядке, TCP собирает их в правильном порядке перед передачей приложению. UDP: Не гарантирует порядок доставки. Пакеты могут приходить в произвольном порядке, и приложение должно обрабатывать их соответствующим образом, если это необходимо. 🟠Пропускная способность и задержки TCP: Из-за механизмов контроля потока и подтверждений имеет большие накладные расходы и, следовательно, может быть медленнее. Это особенно заметно на сетях с высокой задержкой или потерей пакетов. UDP: Из-за отсутствия контроля потока и подтверждений имеет меньшие накладные расходы, что может привести к меньшим задержкам и большей пропускной способности. Подходит для приложений, где важна скорость, а не надежность. 🟠Применение TCP: Используется для приложений, где важна надежность и порядок передачи данных, таких как веб-браузеры (HTTP/HTTPS), электронная почта (SMTP, IMAP, POP3), файловые передачи (FTP), удаленный доступ (SSH). UDP: Используется для приложений, где важна скорость и где потеря некоторых пакетов не критична, таких как потоковое видео и аудио (VoIP, IPTV), онлайн-игры, службы доменных имен (DNS). 🚩Примеры использования TCP HTTP/HTTPS: Веб-серфинг SMTP: Отправка электронной почты IMAP/POP3: Получение электронной почты FTP: Передача файлов SSH: Безопасный удаленный доступ UDP DNS: Запросы доменных имен VoIP: Передача голоса через IP IPTV: Потоковое видео Онлайн-игры: Быстрая передача данных игровой логики NTP: Синхронизация времени Ставь 👍 и забирай 📚 Базу знаний
181
8
🤔 Зачем нужны паттерны проектирования? Паттерны проектирования решают типичные задачи разработки, предоставляя проверенные временем решения. Они повышают читаемость, повторное использование и масштабируемость кода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
198
9
🤔 В чем отличие между двойным и тройным равно? 🚩Примеры разницы между `==` и `===` Сравнение чисел и строк var_dump(5 == "5"); // ✅ true (PHP приводит строку "5" к числу 5) var_dump(5 === "5"); // ❌ false (5 - это int, "5" - это string) Сравнение true и false var_dump(0 == false); // ✅ true (0 считается как false) var_dump(0 === false); // ❌ false (0 - это int, а false - это bool) Сравнение null var_dump(null == false); // ✅ true (PHP считает null как false) var_dump(null === false); // ❌ false (null != boolean) Ставь 👍 и забирай 📚 Базу знаний
213
10
МАСШТАБная конференция о дизайне и карьере от НИУ ВШЭ В прямом эфире соберутся 40+ спикеров, работающих с Яндексом, Apple, Ca+3
МАСШТАБная конференция о дизайне и карьере от НИУ ВШЭ В прямом эфире соберутся 40+ спикеров, работающих с Яндексом, Apple, Cartier, а также такими топовыми звёздами, как The Weeknd, Drake и Zivert. Именно они расскажут о своем профессиональном опыте, обсудят актуальные дизайн-тренды и возможности построения карьеры в России и за рубежом. 1 день, 3 трека и 7 часов экспертных докладов, которые вы не услышите бесплатно нигде, кроме МАСШТАБА. Поверьте: ради такого стоит освободить день. После конференции вы уйдете с ощущением, что карьера с мировыми проектами — это не удача и не связи, а траектория, которую реально спланировать и пройти! 14 октября, 12:00–18:35 онлайн бесплатно, по регистрации Узнать больше #реклама 16+ masshtab.hse.ru О рекламодателе
176
11
🤔 Что такое DI Container? Это инструмент для управления зависимостями приложения. • Он автоматически создаёт объекты и предоставляет их другим компонентам, решая, какие зависимости инъектировать. • Контейнер упрощает реализацию DI, улучшает модульность и тестируемость приложения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
208
12
🤔 Какие модификаторы видимости есть в РНР? В PHP есть три основных модификатора видимости для свойств и методов классов: public, protected и private. Они определяют, какой код имеет доступ к этим свойствам и методам. 🟠`public` (публичный) Свойства и методы, объявленные как public, доступны отовсюду - как изнутри класса, так и извне, а также из наследуемых классов. class MyClass { public $publicProperty = 'Public'; public function publicMethod() { echo 'This is a public method'; } } $obj = new MyClass(); echo $obj->publicProperty; // Выведет: Public $obj->publicMethod(); // Выведет: This is a public method 🟠`protected` (защищённый) Свойства и методы, объявленные как protected, доступны только внутри класса и в классах-наследниках. Они недоступны для внешнего кода. class MyClass { protected $protectedProperty = 'Protected'; protected function protectedMethod() { echo 'This is a protected method'; } } class ChildClass extends MyClass { public function accessProtected() { echo $this->protectedProperty; // Выведет: Protected $this->protectedMethod(); // Выведет: This is a protected method } } $obj = new ChildClass(); $obj->accessProtected(); 🟠`private` (приватный) Свойства и методы, объявленные как private, доступны только внутри самого класса. Они недоступны ни для внешнего кода, ни для классов-наследников. class MyClass { private $privateProperty = 'Private'; private function privateMethod() { echo 'This is a private method'; } public function accessPrivate() { echo $this->privateProperty; // Выведет: Private $this->privateMethod(); // Выведет: This is a private method } } $obj = new MyClass(); $obj->accessPrivate(); 🚩Зачем нужны модификаторы видимости 🟠Инкапсуляция Модификаторы видимости помогают скрывать внутреннее состояние и детали реализации объекта, предоставляя только необходимые интерфейсы для взаимодействия. 🟠Безопасность Они защищают данные от неконтролируемого доступа и изменения, что повышает надежность и безопасность кода. 🟠Поддержка и развитие кода Позволяют контролировать доступ к методам и свойствам, что упрощает изменение и расширение кода без риска нарушить существующую функциональность. Ставь 👍 и забирай 📚 Базу знаний
213
13
🤔 Что такое списочный тип? Это структура данных, представляющая упорядоченный набор элементов, где каждый элемент связан с предыдущим и следующим. 1. Пример — связанный список (linked list), где каждый узел содержит значение и ссылку на следующий узел. 2. Такие типы обеспечивают удобное добавление и удаление элементов, но имеют медленный доступ по индексу (O(n)). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
230
14
🤔 Что такое Rest? Это архитектурный стиль для создания веб-сервисов, который был предложен Роем Филдингом в его докторской диссертации в 2000 году. В его основе лежит принцип использования стандартных HTTP методов (GET, POST, PUT, DELETE и др.) для взаимодействия с ресурсами, представленными в виде URL. 🚩Основные принципы 🟠Адресуемость (Addressability) Каждому ресурсу (например, пользователю, товару) соответствует уникальный URL. 🟠Использование стандартных методов HTTP Использует методы HTTP для выполнения операций с ресурсами. GET: Получение данных. POST: Создание нового ресурса. PUT: Обновление существующего ресурса. DELETE: Удаление ресурса. 🟠Статусность (Statelessness) Каждый запрос к серверу должен содержать всю необходимую информацию для его обработки. Сервер не хранит информацию о состоянии клиента между запросами. 🟠Кэширование (Caching) Ответы от сервера могут кэшироваться, чтобы улучшить производительность и снизить нагрузку на сервер. 🟠Единообразие интерфейса (Uniform Interface) Все взаимодействия между клиентом и сервером стандартизированы, что упрощает интеграцию и взаимодействие между системами. 🚩Примеры 🟠Получение списка пользователей (GET) Запрос GET /users Ответ [ {"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"} ] 🟠Получение информации о конкретном пользователе (GET) Запрос GET /users/1 Ответ { "id": 1, "name": "Alice" } 🟠Создание нового пользователя (POST) Запрос POST /users Content-Type: application/json { "name": "Charlie" } Ответ (Успешное создание) { "id": 3, "name": "Charlie" } 🟠Обновление информации о пользователе (PUT) Запрос PUT /users/1 Content-Type: application/json { "name": "Alice Updated" } Ответ { "id": 1, "name": "Alice Updated" } 🟠Удаление пользователя (DELETE) Запрос DELETE /users/1 Ответ (Успешное удаление) { "message": "User deleted" } Ставь 👍 и забирай 📚 Базу знаний
196
15
REKONFA: что интересного вас ждёт 15 октября 15 октября встречаемся на REKONFA — большой конференции Яндекс Рекламы. На сцене
REKONFA: что интересного вас ждёт 15 октября 15 октября встречаемся на REKONFA — большой конференции Яндекс Рекламы. На сцене: — Глеб Доброрадных — о рекламном рынке и эффективности в сложных условиях — Алексей Штоколов — о новых продуктах и технологиях — Лиза Смирнова — о 360°-форматах и новых точках контакта — Александр Пушной — о человеке и ИИ — Александр Умаров — о персональном подходе, который помогает влюблять клиентов в бренд — Яна Чурикова — об актуальных задачах предпринимателей — Татьяна Мужицкая — о целях и энергии — Антон Беляев — об индивидуальности и проектах, которые любят зрители Вне сцены — зона продуктов Яндекс Рекламы, три игры, викторина, зоны Яндекс Ярда и eLama и нетворкинг. 15 октября, Москва, ВТБ Арена и онлайн. Участие бесплатное. Зарегистрироваться #реклама 16+ ya.rekonfa.ru О рекламодателе
171
16
🤔 Что такое вертикальное шардирование? Вертикальное шардирование разделяет данные по столбцам (таблицам), при этом каждая часть данных хранится на отдельном сервере. Это полезно для разделения по функциональности, например, когда разные сервисы работают с разными наборами данных. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
223
17
🤔 Как спроектировать базу данных? Проектирование базы данных – это ключевой этап в создании любой системы, где хранятся данные. Если БД спроектирована плохо, это приведёт к медленной работе, избыточности данных и сложным обновлениям. 🟠Определение требований и структуры данных Сначала нужно понять, какие данные будут храниться и как они связаны. Какие объекты будут в системе? (например, пользователи, заказы, товары). Как они связаны друг с другом? (например, один пользователь может делать много заказов). Какие поля нужны в каждой таблице? (например, email, password, created_at). - Какие запросы будут выполняться чаще всего? Пример: интернет-магазин Пользователи (users) Товары (products) Заказы (orders) Связь между заказами и товарами (order_items) 🟠Определение таблиц и связей (ERD – диаграмма) Разделяем данные по таблицам и определяем связи (1-к-1, 1-к-N, N-к-N). Связи между таблицами: 1-к-1 → один профиль = один пользователь (users → user_profiles). 1-к-N → один пользователь = много заказов (users → orders). N-к-N → один заказ = много товаров, и один товар может быть в разных заказах (orders ↔️ products). Users (id) --- (1:N) --- Orders (id, user_id) --- (N:M) --- Order_Items (order_id, product_id, quantity) Products (id) SQL-создание таблиц CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), email VARCHAR(255) UNIQUE, password VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); CREATE TABLE products ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255), price DECIMAL(10,2), stock INT ); CREATE TABLE orders ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); CREATE TABLE order_items ( order_id INT, product_id INT, quantity INT, PRIMARY KEY (order_id, product_id), FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE, FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE ); Ставь 👍 и забирай 📚 Базу знаний
247
18
Авторизованные курсы по оборудованию Eltex от дилера №1 Проводим учебные курсы, включающие практические занятия и лабораторны
Авторизованные курсы по оборудованию Eltex от дилера №1 Проводим учебные курсы, включающие практические занятия и лабораторные работы. По итогу успешной сдачи экзаменов обучающемуся выдаётся официальный сертификат от завода Eltex. ⚡Обучение в офисе или онлайн ⚡Опытный преподавательский состав ⚡Лабораторные работы - 50% времени ⚡Обучение юридических и физических лиц Записаться
192
19
🤔 Что такое статическое связывание? Статическое связывание — это процесс, при котором компилятор определяет привязку метода или переменной к конкретному типу во время компиляции, а не выполнения. В основном, статическое связывание происходит для статических методов, переменных и перегруженных методов (не путать с переопределением), где точный тип известен заранее. Это связывание быстрее, чем динамическое, поскольку не требует дополнительных проверок в процессе выполнения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний
262
20
🤔 Какие бывают области видимости? Область видимости (или видимость) определяет, где в коде можно получить доступ к переменным, функциям и другим объектам. В 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. 🟠Публичная область видимости Свойства и методы доступны отовсюду. 🟠Защищённая область видимости Свойства и методы доступны только внутри класса и его наследников. 🟠Приватная область видимости Свойства и методы доступны только внутри класса, в котором они объявлены. Ставь 👍 и забирай 📚 Базу знаний
213