1

在 PHP 中使用针对数组的变量来本地化项目有什么缺点吗?

例如:

en.php

$string1 = "Open";

de.php

$string1 = "Öffnen";
4

1 回答 1

2

我看到了缺点,如果您声明 1000 个变量,您将拥有 1000 个具有 1000 个值的zval 容器。如果您将其声明为数组,例如:

zh.php

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

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

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


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

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