Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt PHP bei der Verwendung von array_shift() die Meldung „Strenge Standards: Nur Variablen sollten als Referenz übergeben werden' aus?
In PHP kann der strenge Standardmodus Warnungen ausgeben, wenn nicht variable Werte als Referenz übergeben werden. Ein häufiges Beispiel hierfür ist die Verwendung der Funktion array_shift().
Die Warnung „Strenge Standards: Nur Variablen sollten als Referenz übergeben werden“ wird angezeigt, wenn array_shift( ) wird mit einem nicht variablen Wert verwendet, der als Argument übergeben wird. Zum Beispiel:
$instance = new MyClass(); $el = array_shift($instance->find(...)); // Warning
Im Gegensatz dazu wird, wenn array_shift() mit einer Variablen aufgerufen wird, die ein Array enthält, keine Warnung generiert:
function get_arr() { return [1, 2]; } $el = array_shift(get_arr()); // No warning
Die Warnung kann verwirrend sein, da array_shift() eine Funktion ist, die einen Array-Wert zurückgibt. Im strikten Modus betrachtet PHP den Rückgabewert von array_shift() jedoch als nichtvariable.
Um die Warnung im strikten Modus aufzulösen, gibt es zwei Optionen:
Zum Beispiel:
// Modify Method Signature function get_arr() { return [1, 2]; } $instance = new MyClass(); $el = array_shift($instance->get_arr()); // Use Intermediate Variable $el = array_shift($instance->get_arr() ?: []);
Das obige ist der detaillierte Inhalt vonWarum gibt PHP bei der Verwendung von array_shift() die Meldung „Strenge Standards: Nur Variablen sollten als Referenz übergeben werden' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!