2017-01-13 3 views
2

Was habe ich hier falsch? Einen Fehler für die 2. Zeile bekommen (foreach ....) Kann mir bitte jemand helfen, es zu korrigieren? UPDATE: Ich denke mein Problem ist, dass die XML-Datei nicht geladen wird. Ich muss das zuerst korrigieren.Erhalte den folgenden Fehler "Warnung: Falsches Argument für foreach()"

$xml = simplexml_load_string($result);    

    foreach($xml->statusCode as $statusCode){ 
      if($statusCode != '200'){ 
       echo $failureMessage; 
       echo 'Error: <span class="formerror">'; 
       echo $xml->errorMessage;     
       echo '</span>'; 
      } else { 
       echo $successMessage. 
       '<ul> 
        <li>First Name: '.$c['f_name'].'</li> 
        <li>Last Name: '.$c['l_name'].'</li> 
        <li>Your Zipcode: '.$c['zipcode'].'</li> 
        <li>Your Email: '.$c['email'].'</li> 
        <li>Your Phone Number: '.$c['phone'].'</li>'; 
       if($c['comments'] != ''){ 
        echo '<li>'.$c['comments'].'</li></ul>'; 
       } else { 
        echo '</ul>'; 
       } 
       ?> 
+0

Sie unten Antwort versucht haben? –

Antwort

0

erhalte die folgende Fehlermeldung „Warning: Invalid argument für foreach geliefert()“

Sein wegen jeder null oder false

foreach($xml->statusCode as $statusCode){ 
      ^
      see var_dump($xml->statusCode), 
      since $xml is either null or false you get above error 

Wir werden diese Fehler regenerieren wie dies zum Beispiel

$ php -r 'foreach(null as $e){}' 
PHP Warning: Invalid argument supplied for foreach() in Command line code on line 1 

/*false OR FALSE*/ 
$ php -r 'foreach(false as $e){}' 
PHP Warning: Invalid argument supplied for foreach() in Command line code on line 1 

So müssen Sie die Fehlerbehandlung ersten

if ($xml === FALSE) 
{ 
    throw new Exception('Failed to load XML string.'); 
}else 
{ 
    foreach($xml->statusCode as $statusCode) 
    { 
      /* Remaining code goes here */ 
    } 
} 
Verwandte Themen