グローバル変数は、アプリケーションのどの部分でもいつでも利用可能であり、渡す必要はありません。
警告:** 適切に設計されたアプリケーションは、グローバル変数を使用すべきではありません。なぜなら、グローバル変数はカプセル化の原則に違反し、不用意に扱うと検出しにくいエラーを引き起こす可能性があるからです。
使用例
$a = 1;$b = 2;function suma(): void{global $a, $b;$b = $a + $b;}suma();echo $b; // 変数 $b はグローバルなので、数字 3 を表示します。
変数 $a
と $b
を自然な文脈の外で得ていることに注意してください。この動作は「マジック」と呼ばれ、他の関数が現在使用中の変数を上書きすると、アプリケーションが予期せぬ状態になるためです。
正しく、アプリケーションは変数をカプセル化し、毎回渡す必要があります。
$a = 1;$b = 2;function suma(int $a, int $b): int{return $a + $b;}echo suma($a, $b); // 3を表示します。
このおかげで、異なる入力パラメータで動的に関数を呼び出すことができ、その出力は環境に依存せず、入力のみに依存することになります。
おそらくグローバル変数の唯一の妥当な使用法は、ユーザー入力の解析で、その場合は superglobal variables について話しているのでしょう。
この場合、変数は書き込み専用ではなく、読み取り専用であるべきで、しかもアプリケーション全体で同じであるため、すっきりした設計になっています。
function getNameFromUrl(): string{return isset($_GET['名前'])? htmlspecialchars($_GET['名前']): '';}echo getNameFromUrl();
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | ja