前提:发送邮件,根据客户语种加载不同语言包模板,发送不同语种的邮件
目前在循环中发送邮件后,require语言包的时候常量都是取的第一次define的常量值,如果第一次加载是英语语言包,后面即便是俄语客户,加载了俄语语言包后,邮件里面的内容依然是英语;
现在有没有什么好的解决方案?
类似代码如下:
function sendEmail($languageId)
{
switch ($languageId) {
case 1 :
require('email_en.php');
break;
case 2 :
require('email_ru.php');
break;
default :
require('email_en.php');
break;
}
}
$emailData = [
['id' => 1, 'language_id' => 1],
['id' => 2, 'language_id' => 2],
['id' => 3, 'language_id' => 3],
['id' => 4, 'language_id' => 4],
];
foreach ($emailData as $v) {
sendEmail($v['language_id']);
}
define
定义的是常量,不能重定义吧。 只能换一种方式了,用$GLOBALS
什么的。还可以email_en.php
返回数据