2017-02-09 9 views
-1

Я уверен, что это простой вопрос, но я новичок в PHP и не могу понять это. Я пытаюсь проанализировать файл .ini, который работает правильно, но я каким-то образом не могу получить доступ к значениям.PHP: Не удается получить доступ к импортированным значениям ini

Мой сайт построен так:

project/ 
    index.php 
    inc/ 
     init.php 
     classes/ 
      frontend.php 
    msg/ 
     messages.ini 

Файл сообщений обрабатывается в init.php с $messages = parse_ini_file("msg/messages.ini"); и затем включены в index.php так:

<?php 
require_once('inc/init.php'); 

//printing the array here works! 

$html = new frontend(); 

Если я печатаю массив сообщений из index.php все работает нормально.

Однако, когда index.php строит new frontend();, массив $messages там недоступен. Сам frontend загружается в init.php и отлично работает без ini-файла.

Таким образом, я предполагаю, что проблема с импортом или переменной областью, но я не могу понять это. Может ли кто-нибудь указать мне в правильном направлении?

+0

показать код 'frontend()' –

+0

@MArcinOrlowski Он строит интерфейс, который работает правильно. Я пытаюсь передать сторонние (в настоящее время жестко запрограммированные) сообщения. – user8793

+0

Scope Scope Scope http://php.net/manual/en/language.variables.scope.php – RiggsFolly

ответ

1

Вместо:

$html = new frontend(); 

... сделать что-то вроде:

$html = new frontend($messages); 

PHP variable scope довольно проста в любом случае: переменная либо глобальной или локальной для функции/метода.

+0

Я думал о передаче массива в качестве аргумента, но не должен ли он иметь хотя бы ту же область действия, что и интерфейс, если он включен в index.php? – user8793

+0

Сфера не так сложна. Внутри-блочной или файловой области нет. –

+0

Спасибо, я получил его сейчас. Это также помогло: http://stackoverflow.com/questions/16959576/reference-what-is-variable-scope-which-variables-are-accessible-from-where-and – user8793

-1

Попробуйте объявить $messages глобальным внутри frontend().

+1

не использовать 'global'. Это плохой стиль кодирования –

+0

Я пробовал, что это не сработало. – user8793

+0

Зачем это плохой стиль кодирования? – Condorcho

 Смежные вопросы

  • Нет связанных вопросов^_^