Этот вопрос закрыт для ответов, так как повторяет вопрос Как внутри функции получить переменную?
vanyatwo
@vanyatwo
Дизайн, веб-сайты и виртуальные туры

Почему не работает вызов array внутри функции?

Пример кода:
$obj = json_decode($content, true);

return $obj; //работает

function test() { return $obj; }
test(); // не работает

*метод вывода значения не имеет, функция почему-то ничего не содержит
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 3
mountpoint
@mountpoint
null
Область видимости не та. Вот так сделайте
function test() {
 global $obj;
 return $obj; 
}
test(); // заработает
Ответ написан
proudmore
@proudmore
Добываю код из головы
Никогда не используйте global, это зло, ведущее на самое дно.
Чтобы функция имела доступ к каким-то переменным, вам нужно передать эти объекты, или ссылки на них, в качестве аргумента функции.
В случае с лямбдой вы можете использовать use, как показано ниже.

$obj = json_decode($content, true);

return $obj; //работает

function test($obj) { return $obj; }
test(); //работает

function($obj){
    return $obj; //работает
}

function() use ($obj){
    return $obj; //работает
}
Ответ написан
Stalker_RED
@Stalker_RED
.
Очень похожий по сути вопрос, на который я только-что отвечал
Почему php скрипт игнорирует функцию?

Коротко: похоже, вы привыкли к тому, как работают замыкания в js. Но в большинстве других языков это не так работает.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы
Zaymigo Нижний Новгород
от 20 000 до 100 000 руб.
ATSAL Москва
До 20 000 руб.
21 июля 2018, в 15:34
6000 руб./за проект
21 июля 2018, в 15:32
1000 руб./за проект