@avtorlego

Можно ли как то функцию видеть переменную без global и передачи в параметр?

Допустим есть функция
function($test){
echo $user;
}
есть переменная $user,
можно ли как то вывести эту переменную без global с самой функции и без передачи в параметры функции?
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
sanek_os9
@sanek_os9
Работаю с Laravel, Vue, Vuetify, AWS Amazon, Linux
Не используйте переменную для хранения данных пользователя, используйте ф-цию или метод какого-то класса, у них будет глобальная область видимости, я делаю что то типа такого:
function User(){
    static $user;
    if (!$user){
        $user = 'тут получаем данные пользователя';
    }
  return $user;
}
В любом месте кода вызываете User()->id или User()['id'] в зависимости что возвращает ф-ция, массив или объект.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Immortal_pony
@Immortal_pony Куратор тега PHP
Можно использовать use, если функция анонимная:
function ($test) use ($user) {
    echo $user;
};


Более полный пример:
$user = (object)['name'=>"Vasya"];

$func = function ($test) use ($user) {
    echo $test;
    echo $user->name;
};

$func("test");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы