0
簡単な質問 - 他の人のコードと一緒に作業しています。私は、初期化が関数内の 'グローバル'キーワードに暗示されているかどうかPHPに疑問を抱いています。すなわちに....私は、彼らが使用されるベーススコープ内の変数を初期化することを好むPHPのグローバルスコープと変数の初期化
// some code
$foo = ""; // any initialization value
function myFunc() {
global $foo;
}
// other code
// some code
function myFunc() {
global $foo;
}
// other code
が合理的に似て...であるが、上述したように、それがために私を必要としますこの場合は外部コードを変更してください。
いいですが、私はそれほど多くを既に推測しています。 2つは本質的に同等か否か?例えば$ foo = ""が最初の例の関数の中にあるとします。 – Scott
私が持っている問題を見てください。この古いコードは、まだevalsを使ってPHPでサポートされていないものをやろうとしているという点で醜いです。私たちはそれらを取り除く過程にありますが、それは大きな仕事です。この場合、部分 'eval'dは関数呼び出しでラップされます。したがって、追加関数を追加してグローバル変数をグローバルスコープ関数に追加すると、同じ変数に別のグローバル参照を追加しない限り、evalコードは使用できません。私の質問は、これが頭痛を引き起こすかどうかです。やがて私たちはすべての駄目なものを取り除きますが、その間に私はできる限り最善のものに対応しなければなりません。 – Scott
関数内で代入を実行すると、グローバル変数に代入されます。これは必要に応じて変数を作成します。しかし、グローバルなステートメントだけでは、変数が作成されません。 – Barmar