Ok. #1 is the first logical, technical reason I've seen against the shorthand being fully implemented (though it begs the question why it was partially implemented in the first place).
I'm not to knowledgeable about SGML specifics (and I can't afford to spend $200+ for a copy of the spec so I can spend a few weeks learning it just for this), so I can't go into that, but extending this to XML is a falacy, because PHP comparison syntax breaks the XML spec. I'm pretty sure that <% echo $var %> (valid PHP) would cause most XML parsers to choke. As for #2 there's no flaw with the logic until you assume that '<?php echo ' is somehow inherently more readable than '<?php= '. That's a matter of opinion either way. By the time you get to #3, however, you've resorted to dreaming up new unrequested language extensions, and references to 'magic' to support your argument. I, and others, would argue that '<?php=' is no more 'magic' than '<?php echo'. We know what it means. If, as you imply, '<?=' and '<%=' are such a horrible "disease" that their very existance is proof that '<?php=' would be a syntactic travesty. Why were they allowed in the first place? If they were implemented "due to popular demand", why is popular demand not sufficient for '<?php='? If you really do want some equivalent to your proposed '<?php~ $foo:$bar ?>', then I might suggest '<?php= isset($foo)?$foo:$bar ?>', which I believe would already work as '<?php echo isset($foo)?$foo:$bar ?>', '<?= isset($foo)?$foo:$bar ?>'. - Theo -----Original Message----- From: Rasmus Lerdorf [mailto:[EMAIL PROTECTED]] Sent: Friday, April 26, 2002 10:42 AM To: Sam Liddicott Cc: Brinkman, Theodore; 'PHP Developers Mailing List' Subject: RE: [PHP-DEV] <?= and <%= both work, why not <?php= Guys, this argument has been killed many times. Please stop. The reasons it won't change: 1. <?php is the SGML-compliant PI tag-style that is supposed to play nice with other technologies. <?php= would completely break that as the SGML spec (and the XML spec) says to use <?php<whitespace> so it would have to be <?php =$foo?> which is even uglier and would cause a bit of trouble at the parser level. 2. The only reason for using <?php =$foo?> is to save a few keystrokes. We have short_tags and asp_tags for example that reason. These are the non-compliant tag style that people have been taught are ok for local code, but shouldn't be used for distributed code. Therefore if you really do want to save keystrokes, which I am all for, use <?=$foo?> or <%=$foo%> and you are happy. If you ever need to distribute your code, write a 30-second sed script that changes these to <?php echo $foo?> for you. That way local hacks/shortcuts stay local, but the distributed code is proper and readable and people won't be wondering what the heck this = thing is. 3. The whole concept of =$var sucks. Magic tokens with no visible meaning is against the spirit of PHP. Yes, it has snuck in due to popular demand, but I see no reason to help the disease spread any further and give people precedence for then wanting stuff like ~$foo:$bar which might echo $foo if it is non-empty, $bar otherwise. A useful operation to be sure, but we don't want a language that looks like <?php~SID:"new user"?> blah blah <?php=$user_name?> It goes back to the old concept of keeping things readable. Figuring out what = and ~ do in this particular context is difficult. You can't just look them up in the index of a PHP book because first of all they are single-character common tokens, but worse, they are modal tokens. -Rasmus On Fri, 26 Apr 2002, Sam Liddicott wrote: > > > > -----Original Message----- > > From: Brinkman, Theodore > > [mailto:[EMAIL PROTECTED]] > > Sent: 26 April 2002 14:55 > > To: 'PHP Developers Mailing List' > > Subject: RE: [PHP-DEV] <?= and <%= both work, why not <?php= > > > > > > Sure, and its only an extra 4 character, really. But that's > > not the issue > > at hand. The issue at hand is that the inconsistency of > > supporting <?= and > > <%= but not <?php= encourages quite a few people to use the > > 'optional' short > > form tags, meaning that their code isn't portable. > > I guy here who till recently poo-poo'd asp tags is now using them because > <%=$VAR;%> is emminently more readable than the alternative. > > > For each person who says <?php= $variable ?> is hard to read > > at least one > > other person says they find <?php echo $variable ?> harder to read. I > > personally find the first easier to read when it is embedded > > in the middle > > of a long line of HTML (like an input tag for example). > > Yep. > > > What possible harm comes from improving the internal > > consistency of the > > language? Why is a two-line patch that would completely remove an > > inconsistency so bitterly fought against? > > To emphasise; people here are adopting bad-old short tags in order to keep > readability of code. It makes it easy to see the code is passive, echoing > only. > > Sam > > > > > -- > PHP Development Mailing List <http://www.php.net/> > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php