Heim  >  Artikel  >  Backend-Entwicklung  >  Lösung für PHP-Warnung: Ungültiges Argument für array_filter() angegeben

Lösung für PHP-Warnung: Ungültiges Argument für array_filter() angegeben

WBOY
WBOYOriginal
2023-06-22 09:07:391497Durchsuche

PHP ist eine weit verbreitete Skriptsprache, die leistungsstarke Unterstützung für die Website-Entwicklung bietet. Allerdings kann es zu Schwierigkeiten kommen, wenn bei der Verwendung von PHP Fehler auftreten. Einer der häufigsten Fehler ist der Fehler „PHP-Warnung: Ungültiges Argument für array_filter()“.

Dieser Fehler tritt normalerweise auf, wenn die Funktion array_filter() in PHP verwendet wird. Diese Funktion wird verwendet, um die Elemente im Array zu filtern und ein neues Array von Elementen zurückzugeben, die die Kriterien erfüllen. Wenn Sie diese Funktion jedoch mit Argumenten verwenden, die bestimmte Anforderungen nicht erfüllen, tritt ein Fehler auf.

Im Folgenden besprechen wir drei mögliche Lösungen zur Lösung dieses Problems.

Lösung 1: Überprüfen Sie das Array mit der Funktion array_filter()

Zunächst müssen Sie das Array mit der Funktion array_filter() überprüfen. Wenn das Array kein echtes Array ist, schlägt diese Funktion fehl. Stellen Sie sicher, dass es sich bei dem Array tatsächlich um ein Array und nicht um ein Objekt oder einen anderen Variablentyp handelt. Um zu überprüfen, ob das Array korrekt ist, können Sie die Funktion var_dump() verwenden, um das Array auszugeben.

Zum Beispiel:

$arr = "this is a string";
var_dump($arr);

Der obige Code gibt Folgendes aus:

string(16) "this is a string"

Dies zeigt an, dass die Variable $arr kein Array, sondern ein String ist. Wenn Sie ein Array mit der Funktion array_filter() filtern möchten, müssen Sie sicherstellen, dass die Variable $arr ein Array ist.

Lösung 2: Überprüfen Sie die Callback-Funktion mit der Funktion array_filter()

Der zweite zu überprüfende Faktor ist die Callback-Funktion. Die Funktion array_filter() hat eine Callback-Funktion als Parameter. Mit dieser Rückruffunktion wird jedes Element im Array getestet, um festzustellen, ob das Element beibehalten werden soll. Wenn die Callback-Funktion TRUE zurückgibt, verbleibt das Element im neuen Array. Wenn die Callback-Funktion FALSE zurückgibt, wird das Element gefiltert.

Die Rückruffunktion sollte wie folgt definiert werden:

function functionName($value) {
  // your code here
  return $value;
}

Der Funktionsname kann angepasst werden, aber er muss $value als Parameter annehmen und einen Wert zurückgeben. Wenn die Rückruffunktion diese Anforderungen nicht erfüllt, tritt der Fehler „PHP-Warnung: Ungültiges Argument für array_filter()“ auf.

Lösung 3: Verwenden Sie die Funktion isset(), um die in der Callback-Funktion verwendeten Variablen zu überprüfen.

Als Drittes müssen Sie überprüfen, ob die in der Callback-Funktion verwendeten Variablen gesetzt sind. Wenn die Rückruffunktion versucht, eine undefinierte Variable zu verwenden, tritt der Fehler „PHP-Warnung: Ungültiges Argument für array_filter()“ auf. Stellen Sie sicher, dass Variablen innerhalb der Rückruffunktion immer definiert und auf bestimmte Werte gesetzt sind.

Zum Beispiel:

$num = 5;
$array = array(1,2,3,4,5);

// This callback function generates an error
function odd($var)
{
  return ($var % $num == 1);
}

// This callback function works properly
function odd_fixed($var)
{
  global $num;
  return ($var % $num == 1);
}

$result = array_filter($array, "odd");
$result_fixed = array_filter($array, "odd_fixed");

Im obigen Code generiert die Rückruffunktion odd() den Fehler „PHP-Warnung: Ungültiges Argument für array_filter() angegeben“, da versucht wird, die undefinierte Variable $num zu verwenden. Stattdessen verwendet die Rückruffunktion odd_fixed() das Schlüsselwort global, um die Variable $num zu definieren und sicherzustellen, dass ihr Wert immer definiert ist. Daher funktioniert die Funktion odd_fixed() fehlerfrei.

Zusammenfassung

Bei Verwendung der Funktion array_filter() von PHP kann der Fehler „PHP-Warnung: Ungültiges Argument für array_filter() angegeben“ auftreten. Dieser Fehler kann durch die Verwendung eines falschen Arrays, einer falschen Rückruffunktion oder einer in der Rückruffunktion verwendeten undefinierten Variablen verursacht werden. Dieses Problem lässt sich leicht beheben, indem Sie diese Einstellungen überprüfen.

Das obige ist der detaillierte Inhalt vonLösung für PHP-Warnung: Ungültiges Argument für array_filter() angegeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn