Take the State of PHP 2026 Survey →

Remove alternative PHP tags View as Markdown

Implemented (PHP 7.0)
Authors
Nikita Popov nikic@php.net
Date
2014-09-09
Source
wiki.php.net/rfc/remove_alternative_php_tags

Vote

Remove alternative PHP tags in PHP 7? closed
Yes
26
No
8
34 voters
ajf No 2014-09-24 19:15
auroraeosrose Yes 2014-09-24 18:57
brianlmoon Yes 2014-09-24 18:15
bwoebi Yes 2014-09-24 18:18
crodas Yes 2014-09-24 19:22
datibbaw Yes 2014-10-01 11:22
daverandom Yes 2014-10-01 09:37
derick No 2014-09-25 09:14
dsp No 2014-09-30 00:48
fa No 2014-09-29 11:43
frozenfire Yes 2014-09-26 02:15
guilhermeblanco Yes 2014-09-24 18:52
gwynne Yes 2014-09-26 08:12
jedibc Yes 2014-09-24 20:34
jwage Yes 2014-09-24 18:19
kalle Yes 2014-09-24 19:29
kassner Yes 2014-09-24 22:27
krakjoe Yes 2014-09-24 18:14
kriscraig Yes 2014-09-24 20:52
leigh Yes 2014-09-24 19:44
levim Yes 2014-09-26 21:48
lstrojny Yes 2014-09-25 09:40
mariuz Yes 2014-09-26 10:28
nikic Yes 2014-09-24 18:14
olemarkus Yes 2014-09-25 06:45
patrickallaert Yes 2014-09-25 14:30
peehaa Yes 2014-09-24 18:17
pollita No 2014-09-28 01:28
rasmus No 2014-09-26 12:56
rdlowrey Yes 2014-09-24 18:19
rogeriopradoj Yes 2014-09-28 16:01
salathe No 2014-09-25 10:25
stas No 2014-09-24 18:27
tyrael Yes 2014-09-25 08:55

Discussions on the mailing list

Remove alternative PHP tags
by Nikita Popov · 12 messages
[VOTE] Remove alternative PHP tags
by Nikita Popov · 3 messages
Alternative PHP tags and strict_types=1
by Bishop Bettini · 2 messages

RFC text

Copied from wiki.php.net, last synchronized Oct 13, 2026 11:51 UTC

Proposal

This RFC proposes the removal of ASP tags (<%) and script tags (<script language=php>) as a means of entering or leaving PHP mode.

The following syntactical elements are removed:

  • <% opening tag
  • <%= opening tag with echo
  • %> closing tag
  • (<script\s+language\s*=\s*(php|"php"|'php')\s*>)i opening tag
  • (</script>)i closing tag

The listed opening tags will no longer enter PHP mode and the listed closing tags will no longer leave PHP mode.

Additionally the asp_tags ini directive is removed. Trying to enable asp_tags will result in a core error.

This RFC does not remove short opening tags (<?) or short opening tags with echo (<?=).

Reasoning

  • The alternative PHP tags have never gained any significant degree of usage. Their usage has been discouraged since forever.
  • The ASP tags depend on an ini directive and as such are non-portable. We generally try to move away from ini-dependent language behavior. With ASP tags removed, short open tags should be the last.
  • ASP tags clash with underscore.js templates and it's not possible to disable asp tags using ini_set().
  • Supporting different tags allows very weird mixing like <script language=php> echo "foo" %>

Porting tool

To simplify porting of legacy code using the alternative tags, a porting script is provided. The script takes a directory and will replace ASP and script tags in all .php files contained in this directory:

php -d asp_tags=1 portAlternativeTags.php dir/

Vote

The vote started on 2014-09-24 and ended on 2014-10-01. The required 2/3 majority has been reached, as such this RFC is accepted.

Vote: Remove alternative PHP tags in PHP 7? — Yes: 26 · No: 8 (closed)