Он должен идти перед DTD и любым другим выходом.<
из <?php
должен быть абсолютным первым байтом файла, в противном случае перед ним находится литеральный вывод (даже если это только пробел или ложная спецификация UTF-8, выданная ошибочным текстовым редактором Windows).
Любое объявление <!DOCTYPE>
в файле .php - это просто чистый выходной текст, который применяется к возвращаемой HTML-странице, а не к самому файлу PHP (поскольку PHP не является ни HTML, ни XML).