On 05 November 2003 17:19, Marco Tabini wrote:

> Ford, Mike [LSS] wrote:
> > On 05 November 2003 17:06, Marco Tabini contributed these pearls of
> > wisdom: 
> > 
> > 
> > > Christian Schneider wrote:
> > > 
> > > > Marco Tabini wrote:
> > > > 
> > > > 
> > > > > $a = [[1,2,3],[1=>[1,3,2,2], "a"=>[[1,2,3,4],4,[1,2]]];
> > > > 
> > > > 
> > > > $a = array(array(1,2,3),array(1=>array(1,3,2,2),
> > > > "a"=>array(array(1,2,3,4),4,array(1,2)));
> > > > 
> > > 
> > > Besides my previous points, something even more abominable:
> > > 
> > > $a = [1,2,$b[11]];
> > > 
> > > Is that confusing enough for you? ;-)
> > 
> > 
> > What's confusing about it?
> > 
> 
> The fact that $b[11] references an item of an array, while
> [1,2,$b[11]] assigns values to the array $a.

That's not confusing -- at least no more so than the different meanings of -
in $b = -$a and $b = $c - $a.

>  The fact that you (and,
> probably, most of us) can't tell right off the bat

Bzzt!  Wrong!  It was because I *could* tell right off the bat exactly what
it meant that I asked why it was confusing.

>  is a clear sign
> that this is a bad idea, because it's ambiguous and confusing.

And again, wrong assumption -- I asked what's confusing because to me it
looks completely unambiguous and totally clear.

> The same line using the current syntax, btw, would have looked like
> this: 
> 
> $a = array (1,3,$b[11]);

Well, I can see true enough that that has the same meaning, but for me it's
harder to read and interpret.  I see the () first and start assuming it's a
function, before my eyes and brain have time to digest that the name of the
"function" is array -- result: a moment's confusion whilst I deal with the
ambiguity of using function syntax for a language construct.  With the []
syntax, I see the square brackets and they immediately shout ARRAY
CONSTRUCTOR at me -- result: instant understanding and I'm on to the next
line of code in a flash.

Cheers!

Mike

---------------------------------------------------------------------
Mike Ford,  Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Beckett Park, LEEDS,  LS6 3QS,  United Kingdom
Email: [EMAIL PROTECTED]
Tel: +44 113 283 2600 extn 4730      Fax:  +44 113 283 3211 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to