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