based on the code you provided, it executes the first time because initially, $a is set to 0 and $fsize is set to 800. Then at the end of your loop, you set $a to the filesize of your file. Your filesize must be > than 800, therefore, the loop ends.
as far as this:
$total = "100 beer";
$incoming = 5;
$total = $incoming + $total;// $total= 105
I don't see how that relates to your original code, seeing as how it's not included in your original code, but at face value, when you add a string and an integer together like that, it will indeed produce your 105, but you will lose the "beer" part of your string. Is that what you want?