Bug #16763 Updated: '<?=', and '<%=' are equivalent to echo, but '<?php=' is not
| From: | yohgaki@php.net | Date: | Fri, 26 Apr 2002 00:09:34 +0000 |
| Subject: | Bug #16763 Updated: '<?=', and '<%=' are equivalent to echo, but '<?php=' is not | ||
| References: | 1 | Groups: | php.bugs php.doc |
| Request: | Send a blank email to php-bugs+get-6030@lists.php.net to get a copy of this message | ||
ID: 16763
Updated by: yohgaki@php.net
Reported By: tbrinkman@cinci.rr.com
-Status: Closed
+Status: Open
-Bug Type: Feature/Change Request
+Bug Type: Documentation problem
Operating System: ALL
PHP Version: 4.2.0
New Comment:
Removing <?= and <%= works, too ;)
We are sure now. There will be people curious about not having <?php=,
since there are <?= and <%=.
It looks we are better to document about echo short cut, explicitly.
Previous Comments:
------------------------------------------------------------------------
[2002-04-25 19:27:03] rasmus@php.net
Removing <?= would also improve consistency.
I don't buy the consistency argument.
------------------------------------------------------------------------
[2002-04-25 19:13:34] yohgaki@php.net
I porposed the same thing monthes ago. I agree. It's strange not to
have <?php= since <?php tag is the only portable tag.
Anyway, in PHP, there are too many inconsistency to note and it's one
of them.
------------------------------------------------------------------------
[2002-04-25 17:36:03] tbrinkman@cinci.rr.com
Do you mind if I ask why not? It's half-way implemented as it stands.
Both of the 'short form' tags support the behavior, what was the
reasoning behind not supporting it in the 'long form' tag?
Other than Rasmus's claim that he '...can't think of anything uglier
and less sensical...". If that was the reason for not fully supporting
the form, why was it partially implemented in the first place?
------------------------------------------------------------------------
[2002-04-23 15:22:44] jimw@php.net
this was discussed to death on php-dev. it's not going to happen.
------------------------------------------------------------------------
[2002-04-23 15:05:37] tbrinkman@cinci.rr.com
Seeing as how '<?=' and '<%=' are both equivalent to '<?php
echo', I
kind of figure that '<?php=' should also be equivalent, but it is not.
Having run into this before, I asked about it and somebody told me it
was in the works to get taken care of for 4.2.0. I checked and it
doesn't seem to be fixed, so I decided to do a bit of hunting to see if
it was within my capabilites. I *think* I've found the changes which
need to be made, but I'm not absolutely certain.
Having searched through all of the source code for all occurrances of
'<%=' and '<?=', I discovered that they only exist (outside of
comments) in one source file.
That said, I *believe* that the following changes to
php-4.2.0\Zend\zend_language_scanner.l would cause '<?php=' to become
equivalent to '<?php echo' just as the other, shorter tags allow.
I don't know how to make an actual patch file, or where to submit it so
here goes. First is the two-line change to zend_language_scanner.l
that would seem to enable the shorthand. Second is the one-line change
to zend_language_scanner.c (just in case the two have to be maintained
seperately).
This should be easily back-portable to previous code trees.
file: php-4.2.0\Zend\zend_language_scanner.l;
replace: lines 941-942;
- - - - - START - - - - -
<INITIAL>"<%="|"<?="|"<?php=" {
if ((yytext[1]=='%' && CG(asp_tags)) || (yytext[1]=='?' &&
CG(short_tags)) || (yytext[1]=='?' && yytext[2]=='p' &&
yytext[3]=='h'
&& yytext[4]=='p')) {
- - - - - STOP - - - - -
file: php-4.2.0\Zend\zend_language_scanner.c;
replace: line 4086;
- - - - - START - - - - -
if ((yytext[1]=='%' && CG(asp_tags)) || (yytext[1]=='?' &&
CG(short_tags)) || (yytext[1]=='?' && yytext[2]=='p' &&
yytext[3]=='h'
&& yytext[4]=='p')) {
- - - - - STOP - - - - -
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=16763&edit=1