PHP delimiters are nothing but open-close tags to enclose PHP scripts. PHP code can be parsed if and only if it is enclosed with these delimiters.
There are various sets of delimiters to recognize PHP code. These are as listed below.
Let us look into the php.ini directive settings that affect the PHP delimiters to be used.
This directive is used to specify whether the short form for PHP delimiters, that is, <?…?>, is allowed or not. This PHP language option will be set with ON/OFF values and the default value is ON. When it is set as ON, then it is allowed to use the short form (<?…?>) to write PHP code which will be recognized by the PHP parser. If it is set to OFF, then the PHP code can not be parsed.
This method of writing a PHP program by enclosing it with <? and ?> is not recommended programming practice. Because, if we launch our code that contains <? and ?> open, close tags, into another PHP server, where the short_open_tag directive is not enabled, then the code will not work on that server.
Though PHP short tags are not portable among different servers, still they are allowed for providing backward compatibility.
This form is used to print something to the browser. For example, a PHP echo statement can be written as follows.
<?php $statement = "PHP Open and Close Tags"; ?> <?=$statement;?>
From the above list of ways to represent PHP tags, the fourth possible form, that is, <?=;>was also included with this constraint depending on the value of the short_open_tag directive as of earlier PHP versions. But, as of PHP version 5.4, this form will also be portable like the first two delimiters, for launching our code having this notation, into another server.
This option is used to allow to recognize of PHP code enclosed with the open-close tags used in Active Server Pages (ASP) scripting, that is like, <%…%>.
We can search for this tag in the php.ini file. If it is enabled by having the value ON, then the PHP scripts inside the open-close tags, <%,%> will be executed, and also, the alternative ASP print statement representation, like, <%=;%> also be allowed. Otherwise, the script including asp tags will be displayed in the browser.
As like PHP short tags <? and ?>, asp style tags also depend on PHP configuration settings. So, this form of tags is also not preferable to develop PHP projects to be launched on another server, because of the lack of portability.