PHP代码插入值但是当使用函数调用时,结果是不同的

时间:2018-05-21 06:16:17

标签: php arrays function

我试图通过调用函数来执行代码,但结果与执行代码本身不同

WITH cte AS (     SELECT 
                         ID
                       , Attr_1
                       , Attr_2
                       , Attr_3
                       , CAST(GREATEST( 
                                CAST(COALESCE(Attr_1_Update_Dt, date '1900-01-01') AS INT)
                              , CAST(COALESCE(Attr_2_Update_Dt, date '1900-01-01') AS INT)
                              , CAST(COALESCE(Attr_3_Update_Dt, date '1900-01-01') AS INT)
                              , CAST(COALESCE(Attr_4_Update_Dt, date '1900-01-01') AS INT)
                              , CAST(COALESCE(Attr_5_Update_Dt, date '1900-01-01') AS INT)
                              , CAST(COALESCE(Attr_6_Update_Dt, date '1900-01-01') AS INT)
                              , CAST(COALESCE(Attr_7_Update_Dt, date '1900-01-01') AS INT)
                              , CAST(COALESCE(Attr_8_Update_Dt, date '1900-01-01') AS INT)
                         )as date) as maxdate
                  FROM yourtable)
SELECT
       ID
     , Attr_1
     , Attr_2
     , Attr_3
     , maxdate
FROM (
      SELECT
             ID
           , Attr_1
           , Attr_2
           , Attr_3
           , maxdate
           , ROW_NUMBER() OVER(PARTITION BY ID
                               ORDER BY maxdate DESC) as rn
      FROM cte
      ) d
WHERE rn = 1

我试图通过函数实现手动执行代码上显示的内容,怎么做?

1 个答案:

答案 0 :(得分:1)

你需要了解数据的范围,你需要将数据传递给你的函数的引用(使用&)函数,以允许函数改变原始数组而不是数据的本地副本。

function assignNilai(&$arr2,$hari,$sesi,$ruang,$arr1,$draft){

&$arr2位允许该函数修改原始数组。

在原始代码中,该函数正在使用它自己的数组版本,所以当函数完成时,这个版本就被丢弃了,数组的原始值仍然是相同的。