Dlaczego tak
Funkcja substr numeruje znaki od 0, więc pozycja 3 to litera g (p-0, r-1, o-2, g-3), a drugi argument to długość — 4 znaki: „gram”. strtoupper zamienia wynik na wielkie litery: GRAM. Odpowiedź OGRA wynika z liczenia pozycji od 1, a GRAMO — z potraktowania drugiego argumentu jako indeksu końcowego włącznie.