从函数返回两个值

2021/01/28 09:41 · php ·  · 0评论

调用将输出值的函数时,是否可以返回两个值?

例如,我有这个:

<?php
    function ids($uid = 0, $sid = '')
    {
        $uid = 1;
        $sid = md5(time());

        return $uid;
        return $sid;
    }

    echo ids();
?>

将输出1例如ids($sid)我想选择要输出的内容,但仍会输出1

可能吗

您只能返回一个值。但是,您可以使用本身包含其他两个值数组

return array($uid, $sid);

然后访问以下值:

$ids = ids();
echo $ids[0];  // uid
echo $ids[1];  // sid

您还可以使用关联数组:

return array('uid' => $uid, 'sid' => $sid);

并访问它:

$ids = ids();
echo $ids['uid'];
echo $ids['sid'];

如果需要返回多个值,则返回一个数组或一个对象。例如:

function foo() {
    return array(3, 'joe');
}

$data = foo();
$id = $data[0];
$username = $data[1];

// or:
list($id, $username) = foo();

您可以使用数组和列表函数轻松获取信息:

function multi($a,$b) {
   return array($a,$b);
}

list($first,$second) = multi(1,2);

我希望这能帮到您

杰罗姆

function ids($uid = 0, $sid = '') 
{ 
    $uid = 1; 
    $sid = md5(time()); 

    return array('uid' => $uid,
                 'sid' => $sid
                );     
} 

$t = ids(); 
echo $t['uid'],'<br />';
echo $t['sid'],'<br />';

许多可能性:

// return array
function f() {
    return array($uid, $sid);
}
list($uid, $sid) = f();
$uid;
$sid;

// return object
function f() {
    $obj = new stdClass;
    $obj->uid = $uid;
    $obj->sid = $sid;
    return $obj;
}
$obj->uid;
$obj->sid;

// assign by reference
function f(&$uid, &$sid) {
    $uid = '...';
    $sid = '...';
}
f($uid, $sid);
$uid;
$sid;

通过引用传递将是一个解决方案。这样,您:

  • 照常返回一个值

  • 并修改第二个(通过引用传递给函数的一个)

一个例子:

function foo(&$var) // notice the & in front of the parameter passed
{
    $var++;
    return 1;
}

$a=5;
echo foo($a);
// echoes 1, the returned value
echo $a;
// $a is now 6
return array('uid' => $uid, 'sid' => $sid);

然后像访问

$dinga = ids();
extract($dinga);

提取将使uid和sid可变。因此,您可以使用$ uid和$ sid。

本文地址:http://php.askforanswer.com/conghanshufanhuilianggezhi.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!