在PHP中使用变量进行本地化是否有任何缺点?

时间:2013-11-06 13:03:55

标签: php

使用变量对数组进行PHP项目本地化是否有任何缺点?

E.g:

en.php

$string1 = "Open";

de.php

$string1 = "Öffnen";

1 个答案:

答案 0 :(得分:2)

我看到了一个缺点,即如果你声明了1000个变量,你就会有1000个zval containers和1000个值。如果你将它声明为如下数组:

en.php

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

...然后只需要一个zval容器(当然值较大的部分)。这将有助于保持PHP的内部符号表更小并节省内存。如果你问我,请使用数组。

更详细的替代方案是使用gettext扩展名


为了完整起见,另一个缺点是使用变量进行翻译可能会导致几乎任何可以想象的变量名称,因此很容易出现名称空间污染。如果你应该使用变量(无论出于什么原因,我看不到),那么你必须“命名”它们以避免这种情况,例如:

$translation_yes = 'yes';
$translation_no = 'no';
...