Variable nimmt keinen Wert an: $the_user->$key=$temp;

Diskutiere Variable nimmt keinen Wert an: $the_user->$key=$temp; im PHP Forum im Bereich Programmierung; Die Variable the_user->$key nimmt keinen Wert an und bleibt leer. In einem Test getrennt von der Schleife funktioniert es. // MySQL $key und...
  • Variable nimmt keinen Wert an: $the_user->$key=$temp; Beitrag #1
L
lendrin
New member
Beiträge
4
Punkte Reaktionen
0
Die Variable the_user->$key nimmt keinen Wert an und bleibt leer. In einem Test getrennt von der Schleife funktioniert es.

// MySQL $key und $value und enthält auch die richtigen Inhalte aus der Datenbank

foreach ($zeile as $key => $value){
$the_user->$key=$value;
}

$the_user->$key bleibt leer und wird vermutlich mit "" überschrieben.

Hat jemand eine Idee?
 
  • Variable nimmt keinen Wert an: $the_user->$key=$temp; Beitrag #2
S
scatello
Well-known member
Beiträge
528
Punkte Reaktionen
44
Hast du das Error-Reporting hochgedreht? Ich vermute mal, dass PHP dir dann einen Hinweis anzeigt.

Also an den Anfang des Scriptes dies schreiben:

PHP:
error_reporting(E_ALL);
ini_set('display_errors', true);
 
  • Variable nimmt keinen Wert an: $the_user->$key=$temp; Beitrag #3
L
lendrin
New member
Beiträge
4
Punkte Reaktionen
0
Ja, danke, ich erhalte:

Deprecated: Creation of dynamic property user::$internet is deprecated in C:\xampp\htdocs\PHP\benutzermanagementdb2\mysqli_test.php on line 570
Zeile 570: $the_user->$key=$value;

"Veraltet" verstehe ich als Warnung, jedoch nicht als Fehlermeldung.
In einem Extratest klappte es auch: $the_user->$key=$x;
____________________________

Nochmal getestet:

foreach ($zeile as $key => $value){
$the_user->$key=$value;
// $the_user->$key ist in der Schleife trotz Zuweisung immer leer!
// echo Ausgabe: $the_user->$key="" .:
lecho("key=".$key.", value=".$value." \$the_user->$key=",$the_user->$key,$thisdebug);
}

Jetzt das Erstaunlich, gebe ich die ganze Variable nach der Schleife aus ( enthält z. B. Adresse, Telefon.. ) erhalte ich die Werte wie geplant!


Die Ursache ist vielleicht, dass in einer solchen Abfrage: foreach ($zeile as $key => $value){.. die zeitliche Abarbeitung nicht dem linearen Code entspricht? Oder? Also noch ein Rätsel für mich!
 
  • Variable nimmt keinen Wert an: $the_user->$key=$temp; Beitrag #5
T
tk1234
Well-known member
Beiträge
103
Punkte Reaktionen
8
Deprecated: Creation of dynamic property user::$internet is deprecated in C:\xampp\htdocs\PHP\benutzermanagementdb2\mysqli_test.php on line 570
Zeile 570: $the_user->$key=$value;

"Veraltet" verstehe ich als Warnung, jedoch nicht als Fehlermeldung.
Es wird aber zukünftig eine Fehlermeldung werden, in dem Fall wird aus deprecated in PHP 9.0 ein fatal error - sowas solltest du also garnicht erst einbauen.

Jetzt das Erstaunlich, gebe ich die ganze Variable nach der Schleife aus ( enthält z. B. Adresse, Telefon.. ) erhalte ich die Werte wie geplant!

Die Ursache ist vielleicht, dass in einer solchen Abfrage: foreach ($zeile as $key => $value){.. die zeitliche Abarbeitung nicht dem linearen Code entspricht? Oder? Also noch ein Rätsel für mich!
Das kann ich nicht nachvollziehen, dein Problem liegt vermutlich wo anders.

Ich würde mir etwas anderes einfallen lassen, eine Notlösung wären variable Variablen.
Aber eine ganz schlechte Notlösung - das ist im Prinzip das selbe nur in einer anderen Farbe angemalt. Ähnlich wäre noch die Möglichkeit das AllowDynamicProperties-Attribut zu verwenden, besser wäre es aber wohl eine Objekteigenschaft zu verwenden in der als Array die Daten gespeichert werden.
 
Thema:

Variable nimmt keinen Wert an: $the_user->$key=$temp;

Oben Unten