私が対処している特定の状況はありませんので、これは一般的な質問と考えてください。言語が重要な場合、回答は PHP に傾く可能性があります。
複数の関数で必要なデータの大きな配列 (または他のデータ型) がある場合、それは変わりません。そのデータをどのように使用すればよいですか? たとえば、次のような配列があるかもしれません
$states = array(
"AL" => "Alabama",
...
"WY" => "Wyoming"
);
明らかに、この配列をすぐに変更する必要はありません。上記の配列を使用する必要がある関数が 5 つある場合、最適な解決策は何ですか? 私の考えは次の3つです。
- グローバル定数として宣言する
これは最も簡単なように思えますが、私が話をした一部の人々は、グローバル変数の使用を避けることを勧めているようです。ここでの洞察をいただければ幸いです。
- 関数に渡す
これは決して変更されず、関数パラメーターは変数用であるべきなので、私には悪い考えのように思えますよね? それを使用しない関数に渡す必要があることは言うまでもありません。別の関数で使用できるようにするためです。それは悪い習慣のようです。
- 関数で返してもらう
これはあまり使用されていませんが、mysqli_connect() 情報を複数の関数に渡すために自分自身を数回使用しました。それはかなりうまくいきました。これは悪い習慣とみなされますか?それを吸い上げてグローバル定数を使用する必要がありますか?
グローバル定数を使用するのは当然のことのように聞こえますが、「グローバルを宣言している場合は、間違ったことをしている」などのマントラを複数聞いた (そして読んだ) ことがあります。これがなぜなのか、誰か説明できますか?
皆さん、あなたが私に与えることができる洞察をありがとう。