Re: Re: [BULK] [PHP] Use array returned by function directly?

From: Date: Mon, 29 Jan 2007 16:27:03 +0000
Subject: Re: Re: [BULK] [PHP] Use array returned by function directly?
References: 1 2 3 4 5  Groups: php.general 
Request: Send a blank email to php-general+get-247948@lists.php.net to get a copy of this message
# turnermm02@shaw.ca / 2007-01-29 10:12:25 -0600: > Roman Neuhauser wrote: > ># neuhauser@sigpipe.cz / 2007-01-29 15:27:21 +0000: > >># crash > >>#assert(2 == returns_array()['c']); > > > >># still crash > >>#assert(2 == returns_array()['c']); > > > >s/crash/syntax error/ > > You can do this in Perl: > my $c = (fn(@a))[2]; Not to mention C++, Python, or quite a few other languages. > But in PHP, this is a syntax error: > $c = (fn($a))[2]; Well, DUH! THat's what the OP was curious about: why is it an error? > Also, it's not clear what the original syntax is meant to do: > explode($needle, $array)[3] > explode() takes a string and converts it to an array based on the > separator expression. This might make sense: > explode($needle, $array[3]) > where $array[3] is a string. > > But explode($needle, $array), it turns out, simply returns the string > "Array". Not at all! Watch this: <?php $array = 'O M F G'; $needle = ' '; assert(array('O', 'M', 'F', 'G') == explode($needle, $array)); ?> -- How many Vietnam vets does it take to screw in a light bulb? You don't know, man. You don't KNOW. Cause you weren't THERE. http://bash.org/?255991

« previous php.general (#247948) next »