Для начала, давайте разберемся, как WEB сервер обрабатывает PHP?
Я приведу "общие, грубые примеры", ибо сервер можно настроить как угодно. Но не в этом дело, мы сейчас говорим о другом и чтоб было понятно, я приведу простейшие примеры.
1) Если, к примеру, расширение файла .html он выдается "как есть" браузеру.
2) Если расширение .php то сервер подключает интерпретатор PHP
Но это еще не значит, что он (файл) будет обрабатываться интерпретатором PHP. Просто сервер знает, если поступит соответствующая комманда, нужно передать код файла интерпретатору PHP.
Открывающие и закрывающие тэги РНР как раз и являются этими самыми коммандами.
Открывающий тэг <?php включает интерпретатор и весь дальнейший код, будет рассматриваться сервером как РНР. До тех пор, пока не поступит закрывающий тэг ?>
или не будет достигнут конец файла