TGViewer
Библиотека PHP программиста 👨🏼‍💻👩‍💻 Библиотека PHP программиста 👨🏼‍💻👩‍💻 @php_lib · 2.06K subscribers
Post #781 696
Сегодня хочу поговорить о ситуации, с которой сталкивался, думаю, каждый PHP-разработчик — "магическое" исчезновение переменных.
Да, вот эти моменты, когда ты уверен, что $userData тут точно есть… а в реальности — Undefined variable: userData.

Причина часто банальна — область видимости.
Многие забывают, что переменные в PHP живут в контексте, где они созданы. Например, внутри функции нельзя просто так достучаться до переменной, объявленной снаружи — она там не существует.

Пример:


$userName = 'Иван';

function greet() {
echo "Привет, $userName"; // Ошибка!
}

greet();


Чтобы это работало, у нас есть три пути:

1. Передать параметром:


function greet($name) {
echo "Привет, $name";
}

greet($userName);


2. Использовать global (но я не советую — код становится менее предсказуемым):


global $userName;


3. Замыкание с use:


$userName = 'Иван';

$greet = function() use ($userName) {
echo "Привет, $userName";
};

$greet();


💡 Совет: всегда старайтесь передавать данные явно - это делает код чище и облегчает тестирование.

А вы как решаете проблему передачи переменных между функциями и методами? Используете глобальные, DI или что-то ещё?

👉 @php_lib
  • 🤡 8
  • 👍 6
More from @php_lib
  1. Sep 24, 2026Сегодня хочу поговорить о теме, которая часто мешает PHP-разработчикам писать красивый и у…
  2. Sep 21, 2026Совет по Laravel💡 Если вы хотите автоматически удалять старые записи, используйте трейт P…
  3. Sep 16, 2026Совет по Laravel💡 Знаете ли вы .... tap() = Tweak and Return 🪄 Да, в Laravel метод tap()…
  4. Sep 9, 2026Совет по Laravel💡 Знаете ли вы... В Laravel есть метод withProgressBar(), который позволя…
  5. Sep 7, 2026💡Совет по Laravel Определение языка пользователя Laravel использует компонент HttpFoundat…
  6. Aug 31, 2026💡Знал ли вы, что… Метод Number::abbreviate в Laravel преобразует сложные числа в удобочит…
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 →