Home » Php » syntax – Difference between <?php and <?

syntax – Difference between <?php and <?

Posted by: admin April 23, 2020 Leave a comment


I am new to php and would like to know if there are any differences between these server tags :



How to&Answers:

The first is a safe open and close tag variation, the second is the so called short-open tag. The second one is not always available, use the first option if it’s possible.
You could check the availability of short open tags in php.ini, at the short_open_tag.


The problem with short open tags is that the following:

<?xml version="1.0" ?>

will cause problems if you’re allowed to use short tags (i.e. <? and ?>). <?php is less open to misinterpretation.

Whether or not you’re allowed to use short tags is defined by the ini directive short_open_tag.


Also I think shorttags are being removed in one of the upcomming releases.

Edit: I was wrong.

Farewell <% They will remove support
for the ASP style tags, but the PHP
short-code tag will remain – so
to those on php general who reckon the
short-tag is ‘depreceated’ – hah! 😉



There is no difference.

The ability to use <? ?> is defined in your php.ini file – usually accessed only by the server host.

You can find more information here


Nothing AFAIK, however I have had servers (shared) where the settings do not support shorthand tags <? ?>, so I usually stick with the <?php ?> for good measure.


Note short_open_tag = Off did not effect the <?= shorthand tag, which is equivalent to <?php echo


As @erenon explained here: https://stackoverflow.com/a/1808372/1961535

The difference is that short_open_tag in some cases isnt available. You can check the status by accessing the php.ini file but in case of shared hosting server, the host does not always allow edits to php.ini file.

You can easily print the phpinfo as explained here:


search for short_open_tag as shown below

enter image description here

It is always better to use full tag because that will always be supported in every version of PHP weather old file or new.