Kod:
$wynik+=$aa;
oznacza to samo, co:
$wynik=$aa+$wynik;
, więc zmienna wynik jest niezdefiniowana i trzeba ją zdefiniować, czyli podać jej jakąś wartość początkową przed zainicjalizowaniem zainicjowaniem.
Dajmy na to przykład:
<?php
$wynik=null;
for($i=1;$i<=5;$i++){
echo $wynik=$wynik+$i;
//echo $wynik+=$i;
}
?>
Gdy $i=1, to $wynik nie istnieje.
Dopiero, gdy $i=2, to $wynik=1.
Dlaczego nie można $wynik=null napisać w pętli, a poza nią? Otóż dlatego, że gdy pętla ma $i=1,$i=2,$i=3; to $wynik będzie miał ciągle taką samą wartość, co iterację. Czyli dla:
for($i=1;$i<=5;$i++){
$wynik=null;
echo $wynik+=$i;
}
, będzie to:
echo null=null+1;
echo 1=null+2;
echo 2=null+3;
echo 3=null+4;
echo 4=null+5;
echo 5=null+6;//w tym miejscu pętla przerywa się, bo $i<=5.
echo $wynik=null+1;
echo $wynik=null+2;
echo $wynik=null+3;
echo $wynik=null+4;
echo $wynik=null+5;
etc.
Poza nią:
echo null=null+1;
echo 1=1+2;
echo 3=3+3;
echo 6=6+4;
echo 10=10+5;
echo 15=15+6;//w tym miejscu pętla przerywa się, bo $i<=5.
echo $wynik=null+1;
echo $wynik=$wynik+2;
echo $wynik=$wynik+3;
echo $wynik=$wynik+4;
echo $wynik=$wynik+5;
Trochę nagmatwałem, pogmatwałem, ale mam nadzieję, że wiesz o co mi chodzi.
Dalej byłoby echo 15=15+6, czyli 21, ale pętla się kończy (przerywa) na $i<=5. Jeśli coś źle napisałem, to proszę mnie poprawić. Nie mogę dojść do ładu z tym kodem, jeśli wystąpiły jakiekolwiek pomyłki w kodzie, czy też rozumowaniu szczerze przepraszam jeszcze raz.