0

如何在 GLOBALS 中为 php 创建一个数组?

例如,我想做这样的事情:

$GLOBALS["chapter_names"] = array();

接着

$GLOBALS["chapter_names"][$i] = $row -> CHAPTER_NAME;

在一个while循环内

$i数组的索引在哪里

这是做事的最佳方式吗?

谢谢!

4

4 回答 4

6
$GLOBALS["chapter_names"] = array();
foreach ($rows as &$row) {
    array_push($GLOBALS["chapter_names"], $row->CHAPTER_NAME);
}
于 2011-03-12T08:10:51.393 回答
1

几乎和你在那里给的一样。除非您在添加新内容时不需要放置 $i 的索引,除非它需要一些特定的索引。你可以这样做:

$GLOBALS['chapter_names'] = array();
$GLOBALS['chapter_names'][] = $row -> CHAPTER_NAME;


print_r($GLOBALS);
于 2011-03-12T08:06:41.963 回答
0

那应该行得通。

$GLOBALS["chapter_names"] = array();

$row = new StdClass;

$row->CHAPTER_NAME = 'test';

$i = 0;

$GLOBALS["chapter_names"][$i] = $row -> CHAPTER_NAME;

var_dump($GLOBALS);

除其他外,显示的值...

["chapter_names"]=>
  array(1) {
    [0]=>
    string(4) "test"

但是,您可能知道,变量应该只具有所需的范围,以防止冲突和可能的问题。因此,在大多数情况下应避免使用全局变量。

于 2011-03-12T08:05:55.537 回答
0

不要使用 $GLOBALS,这是一种过时且非常危险的做法。您可以阅读有关注册表模式的信息 - 它是针对该问题的 OO 解决方案。至于您的示例,它应该可以完全正常工作。

于 2011-03-12T10:39:17.320 回答