halte mich gerade seit ner ganzen Weile an nem Problem auf und habe es nun erstmal aufgeben.
Da Code mehr als 1000 Worte sagt hier:
class Irgendwas {
private $Arr = array();
public function IrgendEineFunktion() {
$Element = (object) array( 'Zahl' => 25 );
for( $i = 0; $i < 4; $i++ )
$this->Arr[] = $Element;
$n = 1;
while( $this->Arr ) {
unset( $Var ); // *1
$Var = array_shift( $this->Arr );
echo $Var->Zahl.'
'; // *2
$Var->Zahl -= $n;
$NeuesArr[] = $Var;
$n++;
}
print_r( $NeuesArr ); // *3
}
}
$bla = new Irgendwas();
$bla->IrgendEineFunktion();
?>
*3 - Theoretisch müsste print_r folgendes ausgeben:
Array ( [0] => stdClass Object ( [Zahl] => 24 ) [1] => stdClass Object ( [Zahl] => 22 ) [2] => stdClass Object ( [Zahl] => 19 ) [3] => stdClass Object ( [Zahl] => 15 ) )
Tut es aber nicht, der Inhalt sieht wie folgt aus:
Array ( [0] => stdClass Object ( [Zahl] => 15 ) [1] => stdClass Object ( [Zahl] => 15 ) [2] => stdClass Object ( [Zahl] => 15 ) [3] => stdClass Object ( [Zahl] => 15 ) )
Deswegen habe ich mir mal den Wert nach dem übergeben des ersten Array-Elementes angeschaut -> *2. Die Ausgabe sieht wie folgt aus:
25
24
22
19
D.h. $Var wird nicht resetet bzw nicht überschrieben.
Aus diesem Grund habe ich Versucht $Var komplett erstmal zu reseten (*1),
Habe es veruscht mit:
unset( $Var );,
$Var = array();
und
$Var = null;
Hatte mit keiner der Möglichkeiten Erfolg....
Nunja nun meine Frage, wie schaffe ich es, dass die Variable neu beschrieben wird?
Danke im voraus.
LG