PHP Warnung: Ungültiges Argument für foreach () angegeben
Warum bekomme ich diese PHP-Warnung?
Invalid argument geliefert für foreach()
Hier ist mein code:
//look for text file for this keyword
if (empty($site["textdirectory"])) {
$site["textdirectory"] = "text";
}
if (file_exists(ROOT_DIR.$site["textdirectory"].'/'.urlencode($q).'.txt')) {
$keywordtext =
file_get_contents(ROOT_DIR.$site["textdirectory"].'/'.urlencode($q).'.txt');
}
else {
$keywordtext = null;
}
$keywordsXML = getEbayKeywords($q);
foreach($keywordsXML->PopularSearchResult as $item) {
$topicsString = $item->AlternativeSearches;
$relatedString = $item->RelatedSearches;
if (!empty($topicsString)) {
$topics = split(";",$topicsString);
}
if (!empty($relatedString)) {
$related = split(";",$relatedString);
}
}
$node = array();
$node['keywords'] = $q;
2
$xml = ebay_rss($node);
$ebayItems = array();
$totalItems = count($xml->channel->item);
$totalPages = $totalItems / $pageSize;
$i = 0;
foreach ($xml->channel->item as $item) {
$ebayRss =
$item->children('http://www.ebay.com/marketplace/search/v1/services');
if ($i>=($pageSize*($page-1)) && $i<($pageSize*$page)) {
$newItem = array();
$newItem['title'] = $item->title;
$newItem['link'] = buyLink($item->link, $q);
$newItem['image'] = ebay_stripImage($item->description);
$newItem['currentbid'] = ebay_convertPrice($item->description);
$newItem['bidcount'] = $ebayRss->BidCount;
$newItem['endtime'] = ebay_convertTime($ebayRss->ListingEndTime);
$newItem['type'] = $ebayRss->ListingType;
if (!empty($ebayRss->BuyItNowPrice)) {
$newItem['bin'] = ebay_convertPrice($item->description);
}
array_push($ebayItems, $newItem);
}
$i++;
}
$pageNumbers = array();
for ($i=1; $i<=$totalPages; $i++) {
array_push($pageNumbers, $i);
}
3
//get user guides
$guidesXML = getEbayGuides($q);
$guides = array();
foreach ($guidesXML->guide as $guideXML) {
$guide = array();
$guide['url'] = makeguideLink($guideXML->url, $q);
$guide['title'] = $guideXML->title;
$guide['desc'] = $guideXML->desc;
array_push($guides,$guide);
}
Was sind die Ursachen dieser Warnung?
Kommentar zu dem Problem
Überprüfen Sie heraus die
{}
- Knopf auf der Bearbeiten-Bildschirm: Es werden format der code für dich, wie ich jetzt gemacht hab 😉 Denn Sie lieferte ein ungültiges argument an die
foreach
. Haben Sie was, die Sie füttern? var_dump
kann Euch helfen. Welche der
foreach
erzeugt den Fehler? Deine Fehlermeldung sollte geben Sie eine Zeilennummer... Es wurde eine PHP-Warnung: Invalid argument geliefert für alle drei: foreach($keywordsXML->PopularSearchResult as $item) { foreach ($xml->Kanal->item as $item) { foreach ($guidesXML->guide als $guideXML) {
InformationsquelleAutor der Frage meme | 2011-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie überprüfen, dass das, was Sie auf der Durchreise sind
foreach
ein array mit dem is_array FunktionWenn Sie nicht sicher sind, es geht um ein array, können Sie immer überprüfen Sie mit dem folgenden PHP-Beispiel-code:
InformationsquelleAutor der Antwort dkinzer
Dies bedeutet, dass du ein foreach auf ein Objekt, das kein array.
Check out all Ihre foreach-Anweisungen, und schauen, ob das Ding vor der
as
, um sicherzustellen, dass es ist eigentlich ein array. Verwendenvar_dump
dump es.Dann fix das einzige, wo es nicht ein array.
Wie diesen Fehler zu reproduzieren:
Stellen Sie sicher
$skipper
ist ein array.InformationsquelleAutor der Antwort Nanne
Weil, auf welcher Zeile der Fehler Auftritt (Sie nicht sagen uns, welche das ist), sind Sie vorbei etwas zu
foreach
dass nicht ein array.Betrachten, was Sie sind, passing in
foreach
, zu bestimmen, was es ist (mitvar_export
), finden Sie heraus, warum es nicht ein array... und fixieren Sie es.Basic, basic-debugging.
InformationsquelleAutor der Antwort Lightness Races in Orbit
Versuchen.
InformationsquelleAutor der Antwort Mr Nobody