Einzelnen Beitrag anzeigen
  #1  
Alt 21.08.2010, 18:40:45
Benutzerbild von Domi
Domi Domi ist offline
Senior Member
 
Registriert seit: Nov 2003
Ort: Kempten @ Allgäu
Alter: 36
Beiträge: 1.408
foreach und Referenzierung?

Hallo Zusammen,

verstehe gerade nicht was hier passiert. Folgendes:

früher hätte ich sowas gemacht:

PHP-Code:
foreach ($filme as $key=>$film)
  
$filme[$key] = ucfirst($film); 
nun dachte ich mir, gibst einfach ne Referenz mit und greifst direkt auf den Wert zu:

PHP-Code:
foreach ($filme as &$film)
  
$film ucfirst($film); 
Variante 1 funktioniert, Variante 2 verhält sich merkwürdig:

PHP-Code:
$filme = array('film1''film2'"Film3");

var_dump($filme);

foreach (
$filme as &$film)
  
$film ucfirst($film);

var_dump($filme); 
Ergebnis:

Code:
array(3) {
  [0]=>
  string(5) "film1"
  [1]=>
  string(5) "film2"
  [2]=>
  string(5) "Film3"
}
array(3) {
  [0]=>
  string(5) "Film1"
  [1]=>
  string(5) "Film2"
  [2]=>
  &string(5) "Film3"
}
wie man sieht ist der 3. Wert vom typ &string.

Wenn ich nun versuche es auszugeben passiert sowas:

PHP-Code:
foreach ($filme as $key=>$film)
  echo 
"$key $film <br />"
Code:
0 Film1
1 Film2
2 Film2
Wie man also sieht hat man jetzt nicht mehr Film 1, 2 und 3, sondern 1, 2 und NOCHMAL 2

Wer erklärt mir nun warum das so ist? Bzw. was ich da nicht verstanden habe? (Ob es Sinn macht in ner foreach die Strings mit ucfirst zu behandeln oder nicht sein mal ganz egal, darum gehts auch gar nicht.)

Freu mich auf Antworten!

Domi
__________________

the best way to be ready for the future is to invent it

Geändert von Domi (23.08.2010 um 11:46:14 Uhr)
Mit Zitat antworten