Задать вопрос
dmtrbskkv
@dmtrbskkv
Кодим и декодим, а иногда кино смотрим

Почему переменная пропадает из области видимости в другом файле?

Почему переменная пропадает из области видимости в другом файле?
$products = [];

... Действия с переменной. В итоге, получается массив из 20 массивов...

// Объект, подключающий файлы
$web_template->include('catalog', 'cards-simple');


Функция include корректно работает и подключает файл
В самом файле такой код:
<?php
$products = $GLOBALS['products'];
var_dump($GLOBALS);
var_dump($products);

if(!isset($products)){
    exit();
}
?>

Ещё использовал global $products, но так же NULL
Кстати, переменная $web_template корректно работает
  • Вопрос задан
  • 156 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Почему переменная пропадает из области видимости в другом файле?
По тому что инклуд происходит внутри объекта $web_template, в котором область видимости изолирована текущим вызывающим объектом.

В самом файле такой код:
<?php
$products = $GLOBALS['products'];
Во первых - вы пытаетесь достать из глобал переменную, которую туда не помещали, во вторых - это просто жопа какой плохой подход, вместо этого у вас должно быть что-то типа
$web_template->products = $products;
$web_template->include('catalog', 'cards-simple');

В самом файле такой код:
var_dump($this->products); // $this будет ссылаться на сам объект $web_template

PS:это при условии что я правильно понял структуру вложений вашего приложения.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
JaxAdam
@JaxAdam
Junior Full-Stack Developer
Как бы сказать... Ты импортируешь переменные от пациента. А надо к пациенту.
Ответ написан
Ваш ответ на вопрос

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

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