php $lang,PHP & Golang 函数多值返回比较

之前(由于太鸡冻而写的心得记录,《看了Go Lang 的一点介绍, 我心动了》),当时被Go语言的多值返回的便利性感动到流涕,因为这个特性确实给予了我们太多的方便和实惠,所以说Go语言是如此的紧贴工程实践呢。而PHP虽然在语言上并没有直接支持多只返回,但是却提供了一个语言结构这样的奇葩存在来赋值。

在php中,类似的语法需要 array配合 list 这个语言结构来实现。  点击这里查看官方手册对list的用法说明。

官方是这样描述list的用途的:

arraylist($varname[,] )

废话不多说,举个栗子:

//e.g (1)

list($succ, $code, $data) = array(true, 0, array(1,2,3));

//$succ : true

//$code : 0

//$data : array(1,2,3)

上面的例子,很简单,就是把array的每一个元素一次性赋值给list里面的变量。

回到这篇文章的开头,和Go语言相比,PHP如何实现多值返回呢?相信如果看到这里的你,也应该清楚了。:-D,如果非要我来个栗子,好吧,上代码:

//假如我们查数据库,获取用户信息

function get_user_info($uid){

//some code get userinfo from db.

try{

$userinfo = Db::get_one(array('uid'=>$uid));

$result = array(true, 0, $userinfo);

} catch (\Exception $e){

$result = array(false, $e->getCode(), $e->getMessage());

}

return $result;

}

list($succ, $code , $data) = get_user_info(20);

if ($succ){

//some thing

var_dump($data);

}else{

Logger::writeErrorLog($data,$code);

echo $data;//error message

}

各种语言都有自己的特点,虽说没有go语言那么简洁,但终究是也是一个比较方便的设施。随着PHP不断的演变,我们开发也随之改变,其实这句话是错误的!因为PHP始终遵循着最佳实践的路子在往前走,所以才有了语言特性的变化,有精力的可以去看看PHP特性RFC,这里都是根据实际应用场景来提交并投票决定是否开发的。希望她越来越好,为什么不呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值