hummingbird
@hummingbird

Как подключить файл с массивом в функции и затем выводить функцией его значения?

Вот функция. Она находится в классе Settings.
public function GetL( $data ) {
	$path = INCLUDE_DIR . '/Settings/' . $data . '.php';
	if ( file_exists( $path ) ) {
		include_once $path;
		return $$data;
	} else {
		return 'Error while connecting the settings file: ' . $data;
	}
}


Далее подключаю класс в файле test.php. Ниже прописываю:
var_dump( $Settings->GetL('settings') );

Все работает - var_dump выводит ключи и их значения массива.

Но если этот класс подключить в другом классе, а уже в нем в прописывать:
$this->Settings->GetL('settings');
То это приводит к ошибке:
Notice: Undefined variable: settings in /путь/до/класса/Settings.php on line 31

Где 31 строка - это:
return $$data;

Не могу понять в чем проблема. Помогите, пожалуйста.
  • Вопрос задан
  • 3452 просмотра
Решения вопроса 1
KorsaR-ZN
@KorsaR-ZN
Приведите пример файла, который вы пытаетесь подключить.

А вообще для того, чтобы поместить содержимое массива из файла в переменную, нужно в фале сделать так:
return [
   'key1' => 'value1',
   'key2' => 'value2',
   'key3' => 'value3',
   'keyN' => 'valueN',
];

А при подключение такого файла, сделать так:
$array = include_once('file.php');

P.S А вообще, расскажите Вашу задачу. Вы явно делаете ее не правильно!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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