On Apr 11, 2008, at 6:31 PM, Daniel Kolbo wrote:
Philip Thompson wrote:
Top-posting side comment: It's not nice to hijack threads.
My comments are below...
On Apr 11, 2008, at 5:33 PM, Daniel Kolbo wrote:
Hello,
I want to return an array from function and reference an index all
in one line. Is this possible?
In the code below I want I want $yo to be the array(5,6).
Here is what I've tried,
function returnarray() {
return array('lose' => array(5,6), 'win' => array(9,8));
}
$yo = returnarray()['lose'];
var_dump($yo);
This yields a parse error.
function returnarray() {
return array('lose' => array(5,6), 'win' => array(9,8));
}
$yo = {returnarray()}['lose'];
var_dump($yo);
This yields a parse error.
function returnarray() {
return array('lose' => array(5,6), 'win' => array(9,8));
}
$yo = ${returnarray()}['lose'];
var_dump($yo);
This gives notices as the result of returnarray() is being
converted to a string. $yo === NULL...not what i want.
function returnarray() {
return array('lose' => array(5,6), 'win' => array(9,8));
}
$yo = returnarray()->['lose'];
var_dump($yo);
This yields a parse error.
function returnarray() {
return array('lose' => array(5,6), 'win' => array(9,8));
}
$yo = ${returnarray()}->['lose'];
var_dump($yo);
This yields a parse error.
Thanks for your help in advance.
Perhaps these pages may assist you:
http://php.net/manual/en/function.array.php
http://php.net/functions
For more immediate help, I think you want to do something along
these lines:
<?php
function returnArray ($index) {
$arr = array('lose'=>array(5,6), 'win'=>array(9,8));
return isset ($arr[$index]) ? $arr[$index] : 'Index not found';
}
$returnTheValueForThis = 'lose';
$result = returnArray ($returnTheValueForThis);
var_dump ($result);
?>
This var_dump will return:
array(2) { [0]=> int(5) [1]=> int(6) }
Hope that helps. Do some more reading in the manual to help
yourself out. ;)
~Philip
Just to be sure, where you saying I hijacked a thread? If so,
please educate me as to how i did this. Now to the response.
If you are viewing a message (in this case, the thread entitled
"Quarters -- ERRORS --") and you hit Reply and change the message to
whatever (in this case, "Return an Array and immediately reference an
index"), it still shows up in the same "thread" as the Quarters one.
This implies that your email has to do with the Quarters one... but it
really doesn't. =D
So, in order to fix this, just hit "New" instead of Reply. =D No harm
done, just good listserv netiquette for people reading their emails
that shove the *same content* emails together. We're all here to
learn, right.
Thanks for the response.
I am familiar with the construction and returning of the arrays and
referencing an index of the array. I understand your code.
However, this is not what I am trying to do.
I could simply do:
function returnarray() {
return array('lose' => array(5,6), 'win' => array(9,8));
}
$yo = returnarray();
var_dump($yo['lose']);
To get my desired result.
I was just seeing if PHP had the capability to combine those last
two lines into one. I realize the function itself is rather
trivial, but just wanted some function to return an array for the
sake of demonstration.
Thanks,
Oooooooh. I see what you're saying now. Sorry for the confusion. To my
knowledge (which is limited ;), I don't think you can do that. This is
somewhat similar to some desired functionality in PHP - I don't
remember the name of it. For example,
<?php
class f1() {
function f2() {
echo "Hello";
}
function f3() {
echo "World!";
}
}
new f1()->f2() . new f1()->f3();
?>
Something like that. Basically, call a class/function and get the
contents directly without instantiating it first. Maybe others have an
opinion on this....
~Philip
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php