PHP でプロジェクトをローカライズするために、配列に対して変数を使用することに欠点はありますか?
例えば:
en.php
$string1 = "Open";
de.php
$string1 = "Öffnen";
PHP でプロジェクトをローカライズするために、配列に対して変数を使用することに欠点はありますか?
例えば:
en.php
$string1 = "Open";
de.php
$string1 = "Öffnen";
1000 個の変数を宣言すると、1000 個の値を持つ 1000 個のzval コンテナーが作成されるという欠点があります。次のような配列として宣言する場合:
en.php :
$translations = array (
'yes' => 'yes',
'no' => 'no'
);
... 必要な zval コンテナは 1 つだけです (もちろん、より大きな値の部分が必要です)。これは、PHP の内部シンボル テーブルを小さく保ち、メモリを節約するのに役立ちます。あなたが私に尋ねるなら、配列を使用してください。
より精巧な代替手段は、gettext
拡張機能を使用することです
完全を期すために、別の欠点として、変換に変数を使用すると、考えられるほとんどすべての変数名につながる可能性があるため、名前空間の汚染が非常に発生しやすくなります。変数を使用する必要がある場合 (何らかの理由で、私にはわかりません)、次のように、これを回避するために変数を「名前空間」にする必要があります。
$translation_yes = 'yes';
$translation_no = 'no';
...