<?
and <?=
are called short open tags, and are not always enabled (see the short_open_tag
directive).
Actually, in the php.ini-production file provided with PHP 5.3.0, they are disabled by default :
$ grep 'short_open' php.ini-production
; short_open_tag
short_open_tag = Off
So, using them in an application you want to distribute might not be a good idea : your application will not work if they are not enabled.
<?php
, on the other side, cannot be disabled -- so, it's safest to use this one, even if longer to write.
Except the fact that short open tagas are not necessarily enabled, I don't think there is much of a difference.