あああぁぁぁぁ>>19さんむちゃくちゃですぅぅ〜
貴方は反グローバル(変数)主義者なのですか〜

そりゃ構造化でグローバル変数使わずに書くことは可能です。
しかし、そんな効率悪いこと普通しませんよね?
上のほうに書いてある効率悪い構造なんて、現実書けませんよ。
いや、趣味でやるなら別ですけど。

そもそもなぜグローバル変数なるものがあるのか、考えたことありますか?
使用すべき用途があるから、わざわざ用意されてるんでしょ?
「危険」と言ってるのは、経験が浅いまたは下手であるといういいわけでしか
ありません。
というか、グローバル変数の「用途」については誰もかかれてなので
そこのところの認識があまいとしか思えないのですが、つまりは
プログラム全体の「状態」を表わす値としてグローバル変数を使うんでしょ?
もし「状態」を気にしなくてもいいプログラムがあるなら、それは前世代的な
バッチ処理とか、スクリプトとかいうものです。
同様に、OOでも、クラスというのはオブジェクトなのだから、状態があるわけです。
その状態を示す値としてメンバ関数を使うんですよね。