0

PHPのGLOBALSで配列を作成するにはどうすればよいですか?

たとえば、次のようなことをしたい:

$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 に答える