veamos, tengo un sistema para enviar correos a los clientes, envía bien, etc. Según el número de serie de la factura (envío las facturas) lo tengo que enviar en un idioma u otro, he aquí la selección del idioma, creo que esto es bastante claro.
Código PHP:
/*seleccionamos un idioma*/
if ($serie == 'a' OR $serie == 'r')
{$idioma='es'; require_once './idiomas/castellano.php';}
elseif ($serie == 'c' OR $serie == 's' OR $serie == 'b' OR $serie == 'u')
{$idioma='en'; require_once './idiomas/ingles_aleman.php';}
else {$idioma='en'; require_once './idiomas/ingles_aleman.php';}
//si es de otra serie el idioma por defecto es inglés
Pero todo eso está dentro de un for para enviar todos los correos.
El primero lo envía bien, los siguientes los envía con el idioma y parámetros del primero. No cambia de idioma. Entiendo que es un problema de los require pero no se por qué.
Empiezo a pensar usando la lógica y tengo la siguiente duda que tal vez es donde radique el problema. Yo pensé que al hacerlo así, según el idioma, metería el fichero que necesita UNA VEZ y a la siguiente iteración del bucle ya estará incluído y por lo tanto no es necesario volver a incluirlo.
Pero tal vez la condición no influye al contenido, no se explicar esto. Es decir, que el if sólo hace que incluya o no el fichero la primera vez, la segunda ya está incluído y da igual que se seleccione el otro, el texto incluído forma parte del código y no le influye para nada el if realizado sino que se va a hacer si o si. No se si me explico, yo mismo me hago un lío.
Pongo un ejemplo práctico para explicarme:
Código PHP:
/*Fichero include nombre_espanol.php*/
$nombre = "carlos";
Código PHP:
/*Fichero include nombre ingles.php*/
$nombre = "charlie";
Código PHP:
//Solo es un ejemplo puede aver errores de sintaxis
//este sería el script
$idioma = "ingles";
bucle que recorre un array
{
if ($idioma == "ingles") {require_once 'nombre_ingles.php'}
else if($idioma=="espanol") {require_once 'nombre_espanol.php'}
echo $nombre;
}
Espero que se me entienda. Se otras soluciones pero "necesito" saber como funciona porque sí, me estoy mareando de tanto pensar.