PHP Multiple需要,相同的功能

时间:2018-12-10 15:09:03

标签: php

我正在尝试生成具有三种不同翻译版本的三个pdf文件

翻译存储在目录中以其语言前缀命名的文件中

lang/pl/global.php
lang/en/global.php
lang/de/global.php

然后将翻译存储在GLOBAL VARIABLES中,例如:

define("SOMEVAR", "SOME VALUE PL"); // for lang/pl/global.php
define("SOMEVAR", "SOME VALUE EN"); // for lang/en/global.php
define("SOMEVAR", "SOME VALUE DE"); // for lang/de/global.php

在某些函数foo()的结尾,我试图调用同一个函数translate()三次,以生成3个翻译的pdf文件。打电话之前,我需要从上面列出的目录结构中进行翻译。看起来像:

require('lang/pl/global.php');
translate('pl');

require('lang/en/global.php');
translate('en');

require('lang/de/global.php');
translate('de');

但是当我尝试从translate()函数内部打印SOMEVAR全局变量时,它仅返回第一个前缀转换(SOME VALUE PL)-因此,在这种情况下,它将是波兰语转换的3倍(3x SOME VALUE) PL)。将顺序更改为en / de / pl会产生三倍的英语翻译(3x SOME VALUE EN)。

我也尝试过将require()移到translate()函数的内部,但是我也没有得到结果。

有帮助吗?

1 个答案:

答案 0 :(得分:1)

您似乎想做的是创建一个全局变量,它是一个数组,在这种情况下,您需要这样做:

$selectedLanguages = [];
$selectedLanguages[] = "pl";
$selectedLanguages[] = "en";
$selectedLanguages[] = "de";

然后,当您要根据需要调用它时,请执行以下操作:

global $selectedLanguages;

foreach($selectedLanguages as $language) {
    require('lang/' . $language . '/global.php');
    // Do stuff with your translation here.
}