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!