0

セッションにユーザー言語を保存してから、次のように言語ファイルをロードしています。

$language = $this->session->userdata('language');
$this->lang->load('form_validation', $language);

しかし、それはかなり厄介$languageです。すべてのコントローラーに上記の変数をロードする必要がある場合は、グローバル変数である方がよいので、次のように使用できます。

$this->lang->load('form_validation', $language);
  • ここで$language、varはグローバル変数になります。

どうやってやるの?

4

3 に答える 3

1

最善の方法(または少なくともグローバルを使用するよりも良い方法)は、言語ファイルをロードするヘルパー関数をコードのどこかに定義することだと思います(CodeIgniterのどこにあるかはわかりません)。

しかし、それは本当に問題ですか?

于 2012-04-17T13:27:37.480 に答える
1

autoload.phpファイル内にヘルパーを配置できます;)。/application/config/autoload.phpにあります

したがって、変数をヘルパーで定義し、ヘルパーをautoload['helper']配列に配置します。

于 2012-04-17T13:31:36.807 に答える
1

あなたが本当にワンライナーを望んでいるなら、なぜそれをしないのですか?

$this->lang->load('form_validation', $this->session->userdata('language'));

一般にグローバルに関しては、不必要にグローバルを作成することは通常良い習慣ではありません。その理由は、グローバルは本質的にどこからでもアクセスできるため、どこからでも更新できるため、バグを見つけるのが困難になる可能性があるためです。

于 2012-04-17T13:34:59.017 に答える