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

Reply via email to