PHP从函数中设置多个变量

时间:2012-01-30 18:58:17

标签: php function

我正在尝试从测试函数中设置三个变量。

到目前为止,这是我的代码:

function test()
{
    $x = 1;
    $y = 2;
    $z = 3; 


}

test();

# should print '1', '2', and '3'
echo $x; 
echo $y;
echo $z;

5 个答案:

答案 0 :(得分:3)

只返回一个对象或一个数组(数组可能就是这样):

function test(){
   $data = array(
     'x' => 1,
     'y' => 2,
     'z' => 3
   );

   return $data;

}

print_r( test() );

或调用每个值:

echo $data['x'];
...

答案 1 :(得分:3)

在这种情况下,有3种易于应用的选项。一种是通过引用传递变量,而不是按值传递。另一种是返回一个数组。另一种选择是使用全局变量 以下是两者的示例:

参考

<?php
function example (&$x, &$y, &$z)
{
    $x = 1;
    $y = 2;
    $z = 3;
}
?>

通过引用传递变量意味着您正在传递实际变量(在计算机内存中为其分配的空间),而不是像往常一样传递值(只是将值传递给函数)。
因此,当您通过引用传递变量(&字符执行)并且您操纵该值时,原始变量的值也会更改。

返回数组

<?php
function example ($x, $y, $z)
{
    $arr['x'] = 1;
    $arr['y'] = 2;
    $arr['z'] = 3;

    return $arr;
}
?>

现在,您可以使用$arr['x'];$arr['y'];$arr['z'];来访问这些值。

全局变量

<?php
$x = 0;
$y = 0;
$z = 0;

function example ()
{
    global $x, $y, $z;

    $x = 1;
    $y = 2;
    $z = 3;
}
?>

答案 2 :(得分:2)

选项:

使用参考文献:

function test(&$x, &$y, &$z) {
    $x = 1;
    $y = 2;
    $z = 3;
}

或返回一个数组并使用extract

function test() {
    return array(
        'x' => 1,
        'y' => 2,
        'z' => 3
    );
}

extract(test());

答案 3 :(得分:1)

function func ()
{
    return array (
        'x' => 1,
        'y' => 3,
        'z' => 42
    );
}


extract (func ());

echo $x, $y, $z;

function func ()
{
    return array (
         1,
         3,
         42
    );
}

list ($x, $y, $z) = func ();

答案 4 :(得分:0)

将变量定义为全局变量?像:

function test()
{
    global $x, $y, $z;
    $x = 1;
    $y = 2;
    $z = 3; 
}