PHP concatenação torna NULL
-
22-07-2019 - |
Pergunta
Quando eu executar esse código, a meio caminho através do laço de concatenação, $ xml torna-se nula e restos nulo em todo o resto do circuito concatenação. Alguém ver por que isso está acontecendo?
$xml = '';
foreach($this->currentColumns['unknown'] as $column => $value)
{
$xml .= "<columnName>";
$xml .= $column;
$xml .= "</columnName>\r\n";
}
return $xml;
Solução
No caso $ this-> currentColumns é algum tipo de resultado de uma análise XML (com SimpleXML por exemplo), é muito possível que os elementos dessa matriz não são realmente cordas, mas XMLElement objetos, ou algo perto o suficiente.
Tente lançando sua variável, de modo que você tem certeza que está cordas concatenando e não objetos:
$xml = '';
foreach($this->currentColumns['unknown'] as $column => $value)
{
$xml .= "<columnName>";
$xml .= (string)$column; // <--- here is the trick
$xml .= "</columnName>\r\n";
}
return $xml;
Outras dicas
Você vai ter que imprimir os seus valores de coluna $ que você vá. Se você está recebendo um nome de coluna muito inesperado, você pode ter que teste com esta condição antes de criar a seqüência de caracteres XML para ele.