Concatenación PHP se convierte en NULL
-
22-07-2019 - |
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;
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.