Почему файл, подключенный через include не видит переменные?
PHP Version 7.2.19-0ubuntu0.18.04.2
Linux ubuntu-s-1vcpu-1gb-fra1-01 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 17:06:04 UTC 2019 x86_64
Сайт на Codeigniter 3 после переноса перестал выводить данные. То есть шаблон выводится, но информации из БД нет. Дошел до файла Loader.php, в котором есть строки:
extract($this->_ci_cached_vars); - здесь понятно - Импортирует переменные из массива. Проверил - переменные импортируются. Например print_r($slider); печатает нужную информацию.
ob_start();
include($_ci_path); - подключаем файл, в котором используются импортированные переменные, например так:
<? if (isset($slider) && sizeof($slider)) { print_r($slider); }?>
В результате ничего не печатается. Почему подключенный код не видит переменные?
vaserguy, Нет, вы не поняли :) Проблема не в short_open_tag = Off в php.ini - это как раз совершенно правильная настройка, и short open tag будет deprecated в версии 7.4 (которая уже на подходе), а в версии 8 будет удалено вообще. Проблема ваша в использовании <?. Решение - просто НИКОГДА так не делать. Вот вообще никогда, даже когда иногда кажется что это удобно.