1

PHP でプロジェクトをローカライズするために、配列に対して変数を使用することに欠点はありますか?

例えば:

en.php

$string1 = "Open";

de.php

$string1 = "Öffnen";
4

1 に答える 1

2

1000 個の変数を宣言すると、1000 個の値を持つ 1000 個のzval コンテナーが作成されるという欠点があります。次のような配列として宣言する場合:

en.php :

$translations = array (
    'yes' => 'yes',
    'no'  => 'no'
);

... 必要な zval コンテナは 1 つだけです (もちろん、より大きな値の部分が必要です)。これは、PHP の内部シンボル テーブルを小さく保ち、メモリを節約するのに役立ちます。あなたが私に尋ねるなら、配列を使用してください。

より精巧な代替手段は、gettext拡張機能を使用することです


完全を期すために、別の欠点として、変換に変数を使用すると、考えられるほとんどすべての変数名につながる可能性があるため、名前空間の汚染が非常に発生しやすくなります。変数を使用する必要がある場合 (何らかの理由で、私にはわかりません)、次のように、これを回避するために変数を「名前空間」にする必要があります。

$translation_yes = 'yes';
$translation_no = 'no';
...
于 2013-11-06T13:25:17.977 に答える