1

我在单独的语言文件中定义了所有文本,这意味着如果我写:

示例 1(工作):

echo TEXT_FOR_PRODUCT_TENNIS; 

根据您的语言为 TEXT_FOR_PRODUCT_TENNIS 定义的文本显示在网站上(例如:“伟大的网球产品!”。

但是,如果我尝试组合两个字符串以创建和回显 TEXT_FOR_PRODUCT_TENNIS,则它不起作用。它没有从语言文件中提取文本,而是在我的网站上回显“TEXT_FOR_PRODUCT_TENNIS”:

示例 2(不工作):

$first_part = TEXT_FOR_PRODUCT_;
$products_name = TENNIS;
echo $first_part.$products_name; 

为什么我不能像这样组合两个字符串,以便语言文件中定义的文本显示为我的第一个示例中的显示?

4

2 回答 2

2

这是您的解决方案:-

define('TEXT_FOR_PRODUCT_TENNIS','dfbvzdfb');
$first_part = 'TEXT_FOR_PRODUCT_';
$products_name = 'TENNIS';
echo constant($first_part.$products_name); 

您首先定义了一个常量和定义的两个带有字符串值的变量,然后打印它,php如何区分这两者。

注意:没有'$'符号的常量调用。

于 2013-09-27T10:06:42.493 回答
0

示例 2 不起作用,因为您定义了整个 TEXT_FOR_PRODUCT_TENNIS

尝试为您的项目使用数组,例如:

$array = array('TEXT_FOR_PRODUCT_TENNIS' => "something" , ... and so on);

然后使用您的代码:

$first_part = 'TEXT_FOR_PRODUCT_';
$products_name = 'TENNIS';
echo $array[$first_part.$products_name];
于 2013-09-27T10:03:40.310 回答