PHP 重新加载数组值中的变量

PHP Reload Variable in array value

我对数组值中的变量声明和值有一点疑问。让我解释一下:

情况: 我的脚本顶部有一个 'Require'。在这个要求中,有一个包含以下内容的数组:

....    
$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);'
);
....

如你所见,这个数组值里面有一个变量'trigger'。

问题: 这个变量是在我的 require

之后设置的
    ...
    require_once 'application.php';
    ....
    ....
    foreach($headValue..
       if('store' == $fieldValue){
          $trigger_filter_store = true;
       }
    ...

然后在我的脚本底部,有一个函数调用我的数组值:

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

问题: 我的 $trigger_filter_store 变量在开始时与 require 一起设置(它将数组值解析为连接的字符串)。

我如何 "reload" 或 "reset" 这个 [QUERY] 字符串更新后的 $trigger_filter_store ?

这是一个 运行 脚本,我不能在其中添加很多更改,因为它是一个执行必要查询的导入页面,具体取决于在 application.php 模块中选择的模块-array,我不想 "break" 整个数组设置。

我想到的唯一 "simple" 解决方案是在设置变量后要求我的 application.php,但我使用了 application.php 中的一些函数在我设置我的变量之前.

我真的没有想法(没有破坏整个脚本)。

谢谢!

不要将文件包含在页面顶部,而是将其移动到您需要的位置,以便先设置变量,然后再包含文件。

您可以使用@khuderm 解决方案并在设置变量后使用 require,或者您可以这样做:

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

然后在你的 foreach 中用 $Query($trigger_filter_store); 调用函数。