我有一个while循环,该循环收集一种语言,例如'en','es','fr'等。
在while循环中,它将根据某些变量发送电子邮件。电子邮件模板是从每个语言文件中定义的常量(即“ lang-en”,“ lang-es”,“ lang-fr”等)中调用的。
在while循环中,我include_once('lang-'。$ what_ever_the_language)。
我遇到的问题是我正在通过循环获取“已定义恒定”的通知。
这是我的代码:
$q = "SELECT name,language FROM members";
$r = mysqli_query($dbc, $q);
while ($row = mysqli_fetch_assoc($r)){
$language = $row['language'];
include_once('lang-'.$language.'.php');
echo HELLO.', '.$row['name'].'<br/>'; //constant HELLO
}
输出:(以2个英语和1个西班牙语为例)
Hi, John
Hi, Paul
Notice: Constant HELLO already defined in lang-es.php on line 1
Ola, Alonso
它似乎在循环中到达新的“语言”文件后就抛出了错误。
是否可以在每个循环结束时停止/取消已定义的常量,以便在重新开始循环时可以重新定义?