looping through strings
can be done with 26 bytes or with 24 down to 18:
foreach(str_split($s)as$c) # A) 26 - general
for($p=0;a&$c=$s[$p++];) # B) 24 - general
for($p=0;$c=$s[$p++];) # C) 22 - if $s has no `0` character
for(;a&$c=$s[$p++];) # D) 20 - if $p is already NULL or 0 (does NOT work for false)
for(;$c=$s[$p++];) # E) 18 - both C and D
for(;$o=ord($s[$p++]);) # F) 23 - work on ASCII codes, if D$s has no NULL byte and D
for(;~$c=$s[$p++];) # G) 19 - if $s has no NULLchr(207) byteand D
$a&$b does a bitwise AND on the (ascii codes of) the characters in $a and $b
and results in a string that has the same length as the shorter of $a and $b.