PHP函数返回数组

Aja*_*jay 71 php arrays function

我需要从函数返回多个值,因此我将它们添加到数组并返回数组.

<?

function data(){

$a = "abc";
$b = "def";
$c = "ghi";

return array($a, $b, $c);
}


?>
Run Code Online (Sandbox Code Playgroud)

我怎么能接受的价值观$a,$b,$c通过调用上述功能?

Kri*_*ann 98

您可以将数组键添加到返回值,然后使用这些键来打印数组值,如下所示:

function data() {
    $out['a'] = "abc";
    $out['b'] = "def";
    $out['c'] = "ghi";
    return $out;
}

$data = data();
echo $data['a'];
echo $data['b'];
echo $data['c'];
Run Code Online (Sandbox Code Playgroud)


fre*_*rik 52

你可以这样做:

list($a, $b, $c) = data();

print "$a $b $c"; // "abc def ghi"
Run Code Online (Sandbox Code Playgroud)

  • 从 PHP 7.1 开始,您可以使用 [$a, $b, $c] = data(); (3认同)

ITS*_*ska 22

function give_array(){

    $a = "abc";
    $b = "def";
    $c = "ghi";

    return compact('a','b','c');
}


$my_array = give_array();
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/en/function.compact.php

  • 不要忘记你也可以使用`extract($ my_array)`将数组分成多个变量:http://php.net/manual/en/function.extract.php (4认同)
  • 这很酷......但在我的经验中并不常用. (2认同)

Nic*_*ick 14

数据函数返回一个数组,因此您可以像访问数组元素一样访问函数的结果:

<?php
...
$result = data();

$a = $result[0];
$b = $result[1];
$c = $result[2];
Run Code Online (Sandbox Code Playgroud)

或者你可以list()像@fredrik建议的那样使用这个函数在一行中做同样的事情.


Hea*_*ota 6

$array  = data();

print_r($array);
Run Code Online (Sandbox Code Playgroud)


Obi*_*ill 5

从PHP 5.4开始,您可以利用数组解除引用并执行以下操作:

<?

function data()
{
    $retr_arr["a"] = "abc";
    $retr_arr["b"] = "def";
    $retr_arr["c"] = "ghi";

    return $retr_arr;
}

$a = data()["a"];    //$a = "abc"
$b = data()["b"];    //$b = "def"
$c = data()["c"];    //$c = "ghi"
?>
Run Code Online (Sandbox Code Playgroud)

  • 注意:您可能不想评估该功能3次! (8认同)

小智 5

<?php
function demo($val,$val1){
    return $arr=array("value"=>$val,"value1"=>$val1);

}
$arr_rec=demo(25,30);
echo $arr_rec["value"];
echo $arr_rec["value1"];
?>
Run Code Online (Sandbox Code Playgroud)