سؤال

وعند تشغيل هذا الرمز، حوالي نصف الطريق من خلال حلقة سلسلة، $ أكس يصبح لاغيا وباطلا لا يزال في بقية أنحاء حلقة سلسلة. وقد أي شخص يرى لماذا يحدث هذا؟

$xml = '';
foreach($this->currentColumns['unknown'] as $column => $value)
{
   $xml .= "<columnName>";
   $xml .= $column;
   $xml .= "</columnName>\r\n";
}
return $xml;
هل كانت مفيدة؟

المحلول

في حالة $ هذا-> currentColumns هو نوع من أنواع نتيجة لXML تحليل (مع SimpleXML على سبيل المثال)، فمن الممكن جدا أن عناصر هذه المجموعة ليست سلاسل حقا، ولكن الأشياء XMLElement، أو شيء قريب بما فيه الكفاية.

وحاول صب المتغير الخاص بك، لذلك كنت على يقين أنك تسلسلي؛ مسلسل سلاسل وليس قطع:

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

نصائح أخرى

وأنت تسير لدينا لطباعة $ قيم العمود كما تذهب. إذا كنت الحصول على اسم العمود غير متوقعة للغاية، قد تحتاج إلى اختبار على هذا الشرط قبل إنشاء سلسلة أكس لذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top