我的所有文本都是用分开的语言文件定义的,这意味着我写的是:
示例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;
为什么我不能像这样组合两个字符串,以便语言文件中定义的文本显示在我的第一个示例中?
答案 0 :(得分:2)
这是你的解决方案: -
define('TEXT_FOR_PRODUCT_TENNIS','dfbvzdfb');
$first_part = 'TEXT_FOR_PRODUCT_';
$products_name = 'TENNIS';
echo constant($first_part.$products_name);
你首先定义一个常量,然后用字符串值定义两个变量然后打印它,php如何区分这两个。
注意:不带“$”符号的常量调用。
答案 1 :(得分: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];