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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Roman Neuhauser wrote:
# turnermm02@xxxxxxx / 2007-01-29 10:12:25 -0600:
Roman Neuhauser wrote:
# neuhauser@xxxxxxxxxx / 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));

?>

I thought the issue was this:


$array = 'O M F G';
$needle = ' ';
$array_2 = array('O', 'M', 'F', 'G');
assert($array == explode($needle, $array_2));




--

_____________________
Myron Turner
http://www.room535.org
http://www.bstatzero.org
http://www.mturner.org/XML_PullParser/



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux