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;
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top