Если файл состоит только из php кода (без вставок HTML), то хорошей практикой является опускание закрывающего тега (?>).
И хотя сам по себе закрывающий тег редко вызывает проблемы (самая распространенная - случайно поставленный после закрывающего тега пробел может вызвать отправку заголовков, поэтому если далее в скрипте вам понадобится отослать заголовки вручную для, скажем, редиректа, то этого сделать не получится, т. к. заголовки уже были отосланы), все-таки отказ от использования закрывающего тега является хорошим тоном программирования на php.
Да и вообще, раз закрывающий тег является необязательным, то и зачем его использовать?
Так, в этом случае
<?php
echo 'Hello, world!';
?>
<html>something</html>
вы должны использовать закрывающий тег для отделения php кода от html.
В этом случае
<?php
echo 'Hello, world!';
закрывающий тег следует опустить.
А в этом случае
<html>something</html>
<?php
echo 'Hello, world!';
?>
на ваше усмотрение. Хотя лучше использовать - для улучшения восприятия кода.