🚀 Variable Scope, References, Closures &
Граница между «пользователем фреймворка» и инженером, который понимает язык.
Если PHP для вас — не только Laravel-контроллеры, эти концепции обязательны. Они напрямую влияют на читаемость, баги и архитектуру кода.
🧠 1. Область видимости (Scope)
Где переменная живёт и умирает.
• Local — существует только внутри функции
• Global — доступна везде, но требует
• Static — локальная, но помнит состояние между вызовами
📌 Static — ключ к счётчикам, генераторам ID, singleton-паттернам
❌ Global — почти всегда архитектурный запах
🔗 2. Ссылки (
По умолчанию PHP копирует значения.
С
• Передача аргументов по ссылке
• Алиасы переменных
• Опасность в
📌 Используйте осознанно. Ссылки — мощный, но острый инструмент.
🧩 3. Closures — функции с памятью
Анонимные функции, которые можно:
• передавать
• хранить
• выполнять позже
И главное — они помнят контекст, где были созданы.
🎯 4.
Closure не видит внешний scope автоматически.
•
•
📌 Это основа колбеков, фильтров, middleware, event-handlers.
📍 5. Лексическая область видимости
Правило простое, но критичное:
Это объясняет 90% «магических» багов с колбеками.
💻 6. Реальный кейс
Динамические условия, конфигурации, runtime-логика — всё строится на этом.
👉 Читать статью
Библиотека пхпшника
use в PHPГраница между «пользователем фреймворка» и инженером, который понимает язык.
Если PHP для вас — не только Laravel-контроллеры, эти концепции обязательны. Они напрямую влияют на читаемость, баги и архитектуру кода.
🧠 1. Область видимости (Scope)
Где переменная живёт и умирает.
• Local — существует только внутри функции
• Global — доступна везде, но требует
global (плохая практика)• Static — локальная, но помнит состояние между вызовами
📌 Static — ключ к счётчикам, генераторам ID, singleton-паттернам
❌ Global — почти всегда архитектурный запах
🔗 2. Ссылки (
&) — работа с оригинальными даннымиПо умолчанию PHP копирует значения.
С
& — вы работаете с той же памятью.• Передача аргументов по ссылке
• Алиасы переменных
• Опасность в
foreach (&$v) → обязательно unset($v)📌 Используйте осознанно. Ссылки — мощный, но острый инструмент.
🧩 3. Closures — функции с памятью
Анонимные функции, которые можно:
• передавать
• хранить
• выполнять позже
И главное — они помнят контекст, где были созданы.
🎯 4.
use — захват переменныхClosure не видит внешний scope автоматически.
•
use ($var) — захват по значению•
use (&$var) — захват по ссылке📌 Это основа колбеков, фильтров, middleware, event-handlers.
📍 5. Лексическая область видимости
Правило простое, но критичное:
Closure использует переменные из места создания,
а не из места выполнения.
Это объясняет 90% «магических» багов с колбеками.
💻 6. Реальный кейс
array_filter, array_map, usort — без closures + use они бесполезны.Динамические условия, конфигурации, runtime-логика — всё строится на этом.
👉 Читать статью
Библиотека пхпшника
🥱3❤1🔥1
Forwarded from Библиотека задач по PHP | тесты, код, задания
Что выведет данный код?
Anonymous Quiz
12%
Ничего не выведется
30%
one
4%
two
4%
three
16%
onetwo
35%
Возникнет ошибка выполнения скрипта