如何在 GLOBALS 中为 php 创建一个数组?
例如,我想做这样的事情:
$GLOBALS["chapter_names"] = array();
接着
$GLOBALS["chapter_names"][$i] = $row -> CHAPTER_NAME;
在一个while循环内
$i
数组的索引在哪里
这是做事的最佳方式吗?
谢谢!
$GLOBALS["chapter_names"] = array();
foreach ($rows as &$row) {
array_push($GLOBALS["chapter_names"], $row->CHAPTER_NAME);
}
几乎和你在那里给的一样。除非您在添加新内容时不需要放置 $i 的索引,除非它需要一些特定的索引。你可以这样做:
$GLOBALS['chapter_names'] = array();
$GLOBALS['chapter_names'][] = $row -> CHAPTER_NAME;
print_r($GLOBALS);
那应该行得通。
$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"
但是,您可能知道,变量应该只具有所需的范围,以防止冲突和可能的问题。因此,在大多数情况下应避免使用全局变量。
不要使用 $GLOBALS,这是一种过时且非常危险的做法。您可以阅读有关注册表模式的信息 - 它是针对该问题的 OO 解决方案。至于您的示例,它应该可以完全正常工作。