【问题标题】:PHP Reload Variable in array valuePHP重新加载数组值中的变量
【发布时间】:2016-11-25 10:28:39
【问题描述】:

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

情况: 我的脚本顶部有一个“要求”。在这个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);'
);
....

如您所见,这个数组值中有一个变量“触发器”。

问题: 这个变量是在我的要求之后设置的

    ...
    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 一起设置(它将数组值解析为连接字符串)。

我如何“重新加载”或“重置”这个 [QUERY] 字符串与更新的 $trigger_filter_store ?

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

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

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

谢谢!

【问题讨论】:

    标签: php arrays variables reload


    【解决方案1】:

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

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

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

    【讨论】:

    • 完美!简单有效!谢谢!而我不能在我的变量之后要求的原因是因为我在设置变量之前使用了一些数组值;)
    【解决方案2】:

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

    【讨论】:

    • 这是我的第一个想法,但问题是我在设置变量之前使用了该数组中的其他值。所以我必须在设置变量之前和之后需要 2 个不同的部分
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 2015-12-30
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    相关资源
    最近更新 更多