1unitedpower: Frage zum Wiki-Artikel „PHP MySQL API“

Beitrag lesen

problematische Seite

Die Funktion bindet nur die Variablen an das Statement. Deren Inhalt wird erst beim Execute ausgelesen. Dazu braucht es die Referenz. (Und wenn das Execute mehrfach laufen soll, muss man zwischendrin die Variableninhalte ändern.)

Urgh - ein Kontrollfluss-Spaghetti-Monster.

Der spread-Operator scheint das aber richtig zu handhaben:

function setFoos (&$foo1, &$foo2) {
   $foo1 = 'Foo!';
   $foo2 = 'Foo!';
}

$foos = ['Bar!', 'Baz!'];

setFoos(...$foos);

var_export($foos); // array ( 0 => 'Foo!', 1 => 'Foo!', )

Mach mal var_dump(), da muss dann auch die Referenz zu sehen sein.

An welcher Stelle? Hätte der Spread-Operator die Parameter per Value übergeben, dann hätte das var_export ja array ( 0 => 'Bar!', 1 => 'Baz!', ) ausgespuckt.