I didn't see any explanation in the documentation as to precisely how the positive/negative return values are calculated for unequal strings.
After a bit of experimentation it appears that it's the difference in alphabetical position of the first character in unequal strings.
For example, the letter 'z' is the 26th letter while the letter 'a' is the 1st letter:
<?php
$zappl = "zappl";
$apple = "apple";
echo strcasecmp($zappl, $apple); #outputs 25 [26 - 1]
echo strcasecmp($apple, $zappl); #outputs -25 [1 - 26]
?>
This might be incredibly obvious to most people, but hopefully it will clarify the calculation process for some others.