2016-11-25 1 views
0

У меня небольшая проблема с объявлением переменной и значением внутри значения массива. Позвольте мне объяснить:PHP Reload Переменная в значении массива

Ситуация: У меня есть «Требовать» в верхней части моего скрипта. Внутри этого требуется, есть массив с этим содержимым:

....  
$oModules[5]['QUERY'] = array(
    'UPDATE voorraad INNER JOIN import_soldenperc ON import_soldenperc.barbodykleur = voorraad.barbodykleur '.(($trigger_filter_store) ? 'AND import_soldenperc.store = voorraad.mag' : '') SET voorraad.solden_pct = import_soldenperc.solden_pct, voorraad.solden_vp = 0, voorraad.solden_sta = DATE(import_soldenperc.solden_sta), voorraad.solden_end = DATE(import_soldenperc.solden_end);' 
); 
.... 

Как вы можете видеть, есть Variable «триггер» внутри этого значения массива.

Вопрос: Эта переменная получает значение после моего требуют

... 
    require_once 'application.php'; 
    .... 
    .... 
    foreach($headValue.. 
     if('store' == $fieldValue){ 
      $trigger_filter_store = true; 
     } 
    ... 

Затем в нижней части моего сценария, есть функция, которая вызывает мое значение массива:

foreach ($oModules[$_SESSION['module_id']]['QUERY'] as $Query){ 
    //Execute query 

Проблема: My $ trigger_filter_store переменная устанавливается в начале вместе с требованием (которое анализирует значение массива на согласованную строку).

Как можно «перезагрузить» или «перезагрузить» эту строку [QUERY] с обновленным $ trigger_filter_store?

Это запущенный скрипт, в котором я не могу добавить много изменений, потому что это страница импорта, которая выполняет необходимые запросы, в зависимости от того, какой модуль выбран в модуле application.php, и я не хотите «разбить» всю настройку массива.

Единственное «простое» решение, о котором я думал, должно было требовать моего приложения.php после того, как переменная была установлена, , но я использую некоторые функции из application.php, прежде чем установить свою переменную.

У меня действительно нет идей (не нарушая весь сценарий).

Спасибо!

ответ

2

Вы можете использовать @khuderm решение и использовать его require после установки переменной, или вы можете сделать это:

$oModules[5]['QUERY'] = array(
    function($trigger_filter_store) { 
     return 'UPDATE voorraad INNER JOIN import_soldenperc...'; 
    } 
) 

, а затем вызвать функцию с $Query($trigger_filter_store); в вашем Еогеасп.

+0

Perfect! Простой и эффективный! Благодаря! И причина, по которой я не могу требовать после моей переменной, заключается в том, что я использую некоторые значения массива, прежде чем я смогу установить свою переменную;) –

+0

Да, я прочитал, что по предыдущему вопросу, пожалуйста. – debute

1

Вместо того чтобы включать файл в верхней части страницы, переместите его туда, где он вам нужен, чтобы переменная была установлена ​​первой, а затем вы включили файл.

+0

Это была моя первая идея, но проблема в том, что я использую другие значения из этого массива, прежде чем устанавливать свою переменную. Поэтому мне пришлось бы потребовать 2 разных части до и после установки моей переменной –

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