/ / PHP関数ですべてのグローバル変数を一度に使用する-PHP、関数、変数、グローバル、グローバル

php関数ですべてのグローバル変数を一度に使用する - PHP、関数、変数、グローバル、グローバル

約50個のグローバル変数を含むphpスクリプトがあります。 グローバル変数が必要な関数は約18個あります。

ほとんどの関数でほぼ40個のグローバル変数が必要です。 私は今それらを次のように含めました:

      function example1() {
global $1, $2, $3, ..... $40;
}

function example2() {
global $1, $2, $3, ..... $40;
}

これを行うより簡単な方法はありますか?

たとえば、一度にすべてのグローバル変数を含めますか?

多分配列に?

良い提案を聞きたいです!

回答:

回答№1は0

私は多くの変数をグローバルに引き渡していました。 配列内のデータを宣言してグローバル変数に引き渡そうとする代わりに、配列内のデータを直接変更するためにfor&ループで処理する必要があることがわかりました。

ループ内の配列要素を直接変更できるようにするには、$ valueの前に&を付けます。その場合、値は参照によって割り当てられます。

      <?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // break the reference with the last element
?>

助けてくれてありがとう!たくさんのコードと変数を削除できました...


回答№2の場合は0

すべてのグローバルを単純に含めることができます。

function myFunc() {
foreach ($GLOBALS as $n => $v) {
global $$n;
}
... code using any global variable
}

または、独自の定義済みサブセットを含めることもできます。

$myGlobals = array("n1","n2");

function myFunc() {
foreach ($GLOBALS["myGlobals"] as $n) {
global $$n;
}
... code using any global variable named in $myGlobals
}

回答№3の場合は0

PHPには、すべてを変換する抽出関数がありますつまり、$ GLOBALS varにはすべてのグローバル変数が含まれているため、関数内でそれを簡単に抽出します。

$name = "John Doe";
function myFunction(){
extract($GLOBALS);
echo $name;
}