Reputation: 979
I'm having a little issue with a variable declaration and value inside an array value. Let me explain:
The situation: I have a 'Require' at the top of my script. Inside this require, there is an array with this content:
....
$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);'
);
....
As you can see, there is a Variable 'trigger' inside this array value.
The issue: This variable gets set after my require
...
require_once 'application.php';
....
....
foreach($headValue..
if('store' == $fieldValue){
$trigger_filter_store = true;
}
...
Then at the bottom of my script, there is a function that calls my array value:
foreach ($oModules[$_SESSION['module_id']]['QUERY'] as $Query){
//Execute query
The problem: My $trigger_filter_store variable gets set at the start, together with the require (which parses the array value to a concated string).
How can I "reload" or "reset" this [QUERY] string with the updated $trigger_filter_store ?
This is a running script where I can't add a lot of changes, because it's a import page that executes the necessary queries, depending on which module is selected in the application.php module-array and I don't want to "break" the entire array-setup.
The only "simple" solution I thought of, was to require my application.php after the variable has been set, but I use some functions from the application.php before I set my variable.
I'm out of ideas really (without breaking the entire script).
Thanks!
Upvotes: 0
Views: 569
Reputation: 2683
You can either use @khuderm solution and use that require
after setting the variable, or you can do this:
$oModules[5]['QUERY'] = array(
function($trigger_filter_store) {
return 'UPDATE voorraad INNER JOIN import_soldenperc...';
}
)
and then call the function with $Query($trigger_filter_store);
in your foreach.
Upvotes: 2
Reputation: 1733
Instead of including the file at the top of the page, move it where you need it so the variable are set first and then you include the file.
Upvotes: 1