グローバルを使用せずに関数の外部の変数に影響を与える方法に関するいくつかのコード例が必要です。また、グローバルを使用する場所と使用しない場所を知りたいです。
前もって感謝します。
グローバルを使用せずに別のスコープの変数に影響を与える唯一の方法は、参照を使用することです。引数の前に。を付けることにより、参照によって引数を取る関数を定義できます&
。例えば:
function increment(&$var) {
$var++;
}
$int = 1;
increment($int);
echo $int; // 2
「いつグローバルを使用すべきか」という質問に答えて、決して。これらはプログラムフローを混乱させ、エラーや予期しない動作を招きます。また、別のスコープの変数名に依存するため、コードの移植性が低下します。
グローバル変数を悪用しないでください。
質問の2番目の部分については、次のように実行できます。
function test(&$param) {
$param = 'new';
}
$test = 'old';
test($test);
echo $test; // returns 'new'
$var = 'value';
echo $var; //outputs "value"
a($var);
echo $var //outputs "new value; func a";
b('some other sutff', 'etc');
echo $var; //outputs "new value; func b";
function a(&$var2affect){
$var2affect = 'new value; func a';
return;
}
function b($some_var, $some_second_var){
global $var;
$var = 'new vaule; func b';
}
または、具体的に何をしたいのか教えてください
私の英語でごめんなさい