php 调用方法返回多个值,php 函数如何返回多个值

但是我的遭遇如下:

下面这个函数告诉我们两个用户是否可以交流。function a_can_talk_to_b($a, $b) {

return (...) ? true : false;

}

现在,事情变了,除了告知能不能交流外,还要告知为什么,即希望函数调用在返回false能告诉调用方为什么是false。

我用了下面这种方式:(给函数传一个传引用参数why,然后返回出来)function a_can_talk_to_b($a, $b, &$why) {

if (...) {

return true;

} else {

$why = '...';

return false;

}

}

还有另一种就是返回一个array:(但是这样返回值就不是简单的布尔值了,会改变函数调用的方式)function a_can_talk_to_b($a, $b) {

if (...) {

$why = '...';

return array('status' => true, 'why' => $why);

} else {

$why = '...';

return array('status' => false, 'why' => $why);

}

}

除了这两种还有别的方式吗?

回复内容:

但是我的遭遇如下:

下面这个函数告诉我们两个用户是否可以交流。function a_can_talk_to_b($a, $b) {

return (...) ? true : false;

}

现在,事情变了,除了告知能不能交流外,还要告知为什么,即希望函数调用在返回false能告诉调用方为什么是false。

我用了下面这种方式:(给函数传一个传引用参数why,然后返回出来)function a_can_talk_to_b($a, $b, &$why) {

if (...) {

return true;

} else {

$why = '...';

return false;

}

}

还有另一种就是返回一个array:(但是这样返回值就不是简单的布尔值了,会改变函数调用的方式)function a_can_talk_to_b($a, $b) {

if (...) {

$why = '...';

return array('status' => true, 'why' => $why);

} else {

$why = '...';

return array('status' => false, 'why' => $why);

}

}

除了这两种还有别的方式吗?

这样做可以啊,从语言的角度来说没有任何问题

楼主是不是想问这种做法好不好?

我的建议是,最好别这样,因为每次都还要多传一个跟逻辑似乎毫无关系的参数,使用的人会觉得很奇怪。

如果可以的话,抛出exception吧,你可以通过catch Exception来获取意外信息

这种设计需求本身就是不合理的。

一个函数,就干一件事情。

如果要干多个事情,分开函数来做。

非要放在一个函数里面,一开始就返回数组吧。没别的招。

return {'canTalk'=>true,'why'=>'balabala...'}

挺好挺正确,如果你别的地方也回用到why,那也有必要单独提出来形成一个封装。

如果你不在乎返回true or false的便捷

可以返回CODE

再根据CODE=>MESSAGE表来找出why

返回数组、JSON对象都可以解决你的问题

相关标签:php

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值