Xiaobai、助けてください私は現在 PHP を独学で勉強していますが、今日小さな問題が発生しました $a = 10 関数 add(){ $a = $a * 10; } Add(); echo $a; $a は 10 であるはずですが、このコード スニペット しかありません。 私は初心者です、誰かが私を助けてくれることを願っています。 共有先: -----解決策--------------------------------変数ドメインの問題 -----解決策---------の変数関数はローカル変数です。また、関数内の$aは初期化されません。 ------解決策------------------この投稿は、PhpNewnew によって最後に公開されました。 2013 -09-24 10:33:57 編集 引用: PHP でデータ型を定義せずに直接使用することはできないでしょうか? $a = 10; はグローバルに定義されていますが、メソッド内では使用できませんか? スコープの問題について説明します。変数が関数の外で定義されている場合、関数内で直接参照することはできません。関数 内で渡すか宣言する必要があります。 $a = 10; 関数 add($a) { $a * 10 を返します; } $a = add($a); echo $a; //================= $a = 10; 関数 add(){ グローバル $a; $a = $a * 10; } Add(); echo $a;-----解決策--------- 引用: PHP でデータ型を定義せずに直接使用することはできないのでしょうか? $a = 10; はグローバルに定義されていますが、メソッド内では使用できませんか? いいえ。 。パラメータ $a を渡しても、参照渡しではないため、外部のエコー $a は 10 のままです $a = 10; 関数 add($a){ $a = $a * 10; } add($a); echo $a;//10のままです。値は渡されますが、変更されるのは関数内の$aのみで、関数外の$aは変更できません //===================== その場合は問題ありません (パラメータを参照渡しします) $a = 10; 関数 add(&$a){ $a = $a * 10; } add($a); echo $a;//は 100