0

如果我有一个数组:

$resultArr = pg_fetch_array($result,NULL);

在我的 php 代码的顶部,我声明:

$_SESSION['resultArr'] = $resultArr;

为什么我不能像这样访问数组元素:

for($i = 0; $i < $NUM_COLUMNS; $i++){
    // creation of the table and row are handled elsewhere.
    // The table is also within a <form> if that matters
    echo "<td>" .$_SESSION['resultArr'][$i]."</td>";
}

我的表最终有空列,我不知道为什么......

编辑:我想通了。$_SESSION['resultArr'] = $resultArr;我在我的代码顶部声明(在 session_start() 之后)并且它没有被设置。之后我把它移到了点$resultArr = pg_fetch_array($result,NULL);

这是它应该如何工作还是应该在代码顶部正常工作?

4

2 回答 2

1

也许你提过也没有提过,但你必须session_start()在任何操作之前调用$_SESSION

于 2013-05-06T23:05:23.567 回答
0

编辑后,是的,这就是它应该如何工作的方式,您首先需要声明$resultArr,然后将其值放入会话数组中

因为在 php 中您不再使用指针,这 $_SESSION['resultArr'] = $resultArr;意味着“$_SESSION['resultArr'] 在那个精确时刻获取 $resultArr 的所有值”,但这并不意味着“它们是相同的,如果一个改变,那么另一个也有变化”。

于 2017-07-25T10:09:30.973 回答