Hallo,
in einer for-Schleife ist die Syntax nun mal so vorgegeben, das eine Zählvariable als erstes Verlangt wird, daß heißt da wird sie auch deklariert.
for ($i=0;.....)
Bei einer while-Schleife muss die Zählvariable vorher deklariert worden sein, sonst passiert garnix.