Przejdź do głównej zawartości

Nieprawidłowy argument podany dla błędnika foreach



…». Podczas rozwijania kodu w PHP programista może napotkać komunikat o błędzie " Niepoprawny argument dostarczony dla foreach w ...". Po tym komunikacie zwykle następuje wskazanie jego szczegółów, na przykład "/ modules / tasks / todo_tasks_sub.php on line 121". Błąd jest zwykle spowodowany specyfiką dostępnego segmentu kodu i wymaga weryfikacji osobliwości używania zmiennych w nim. Przyjrzyjmy się czynnikom błędu i jak je naprawić.

Invalid-argument-supplied-for-foreach-in



Treść artykułu:

Przyczyny podania niepoprawnego argumentu dla foreach

Omawiany błąd pojawia się zwykle w sytuacji, gdy zmienna, której foreach próbuje wykonać (powtórzenie), nie jest tablicą. Na przykład, przekazujesz do pętli nie tablicę, ale skalar lub korzystasz z podwójnej tablicy i zapominasz o tym, w jaki sposób wybrany jest indeks.

Załóżmy, że mamy funkcję o nazwie get_user_posts. Ta funkcja powinna zwrócić tablicę komentarzy użytkowników. Jeśli jednak nie ma komentarzy, funkcja zwraca wartość logiczną FAŁSZ.

Przykład kodu PHP
Kod Code Przykład

W powyższym kodzie założono, że zmienna $ posts zawsze będzie tablicą. Jednakże, jeśli funkcja get_user_posts zwraca wartość logiczną FALSE, to pętla foreach nie będzie działała, a PHP wyświetli następujący komunikat o błędzie:



Ostrzeżenie: Niepoprawny argument foreach () w linii 7

Jak rozwiązać ten problem? Rozumiemy to.

To jest interesujące: instalacja PHP 7.0.5 na Debianie.



Jak naprawić błąd "Niepoprawny argument for foreach in"

Rozwiązanie zależy od tego, do czego służy Twój kod. Oznacza to, że jeśli funkcja get_user_posts powinna zawsze zwracać tablicę, to oczywiście musisz dowiedzieć się, dlaczego zwraca wartość logiczną FALSE lub wartość NULL. Powodem tego może być kilka rzeczy:

  • Nie można zadeklarować pustej tablicy "default" (domyślnie);
  • Nie udało się wysłać zapytania do bazy danych;
  • Tablica zostanie nadpisana lub zresetowana. Zdarza się to często w skryptach z dużą liczbą tablic, gdy istnieją ograniczenia pamięci, a programista jest zmuszony upuścić tablice, z którymi zakończył pracę.

Przeglądając kod kogoś innego, możemy natknąć się na API i funkcje, które zwracają FALSE, gdy nie znaleziono wyników. Jeśli tak, możesz dodać następującą kontrolę do swojego kodu:

Проверка php-кода
Dodajemy czek do naszego kodu

Powyżej używamy funkcji is_array, aby sprawdzić, czy $ posts jest tablicą. I robimy to ZANIM próbujemy zapętlić go za pomocą konstrukcji foreach. Jak już pisaliśmy, wszystko zależy od celu skryptu. Dodanie sprawdzenia is_array jest niemądre w sytuacji, gdy pojawiają się pytania o to, czy zmienna będzie tablicą. W końcu ukryjesz błąd, który nie powinien istnieć.

Błąd WordPress

Ponadto, rozważany błąd "Niepoprawny argument dla foreach w" może pojawić się, gdy strony działają na WordPress. Problem polega na tym, że WP_Block_Parser wykonuje kilka manipulacji ciągami za pomocą substr () i strlen (), zakładając, że pracują z pojedynczymi bajtami, a nie z sekwencjami wielobajtowymi.

Rozwiązywanie problemu Niepoprawny argument dostarczony dla foreach w WordPress pomaga zmienić wartość ustawienia mbstring.func_overload na 0 (zwykle kosztuje 2). Zapisz wprowadzone zmiany i spróbuj przejść do poprzedniej problematycznej strony.

, и скопировать в аналогичную папку на вашем хостинге. Jeśli to nie pomoże, spróbuj pobrać WordPress 4.9.5, wyodrębnij z niego folder wp-includes i skopiuj go do podobnego folderu na twoim serwerze. Po tym WordPress może zaoferować aktualizację baz danych, zgodzić się i będzie działać po wyczyszczeniu pamięci podręcznej.

Zobacz także: wiele żądań do xmlrpc.php w WordPress.

Wniosek

Błąd "Niepoprawny argument dostarczony dla foreach w ..." w kodzie PHP jest zwykle spowodowany przez zmienną, która nie jest tablicą. Last próbuje wykonać foreach, ale bez powodzenia. Aby rozwiązać problem, możesz dodać funkcję is_array (sprawdzi, czy zmienna jest tablicą). Możesz również polecić ogólny materiał informacyjny na stronie phpfaq.ru , gdzie możesz dowiedzieć się szczegółowo, jak znaleźć błąd w kodzie, który utworzyłeś.



Jak oceniasz artykuł?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Brak ocen jeszcze)
Ładowanie ...

Dodaj komentarz

Twój e-mail nie zostanie opublikowany.