Pregunta

Cuando ejecuto este código, aproximadamente a la mitad del ciclo de concatenación, $ xml se vuelve nulo y permanece nulo durante el resto del ciclo de concatenación. ¿Alguien ha visto por qué sucede esto?

$xml = '';
foreach($this->currentColumns['unknown'] as $column => $value)
{
   $xml .= "<columnName>";
   $xml .= $column;
   $xml .= "</columnName>\r\n";
}
return $xml;
¿Fue útil?

Solución

En caso de que $ this- > currentColumns sea algún tipo de resultado de un análisis XML (con SimpleXML por ejemplo), es muy posible que los elementos de esta matriz no sean realmente cadenas, sino objetos XMLElement o algo lo suficientemente parecido.

Intente convertir su variable, de modo que esté seguro de que está catenificando cadenas y no objetos:

$xml = '';
foreach($this->currentColumns['unknown'] as $column => $value)
{
   $xml .= "<columnName>";
   $xml .= (string)$column;  // <--- here is the trick
   $xml .= "</columnName>\r\n";
}
return $xml;

Otros consejos

Tendrá que imprimir sus valores de $ columna a medida que avanza. Si obtiene un nombre de columna muy inesperado, es posible que deba probar esa condición antes de crear la cadena xml para él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top