首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中是否有多个返回值--是否接受/良好实践?

问PHP中是否有多个返回值--是否接受/良好实践?
EN

Stack Overflow用户
提问于 2011-02-04 18:53:41
回答 4查看 703关注 0票数 2

在其他语言中,通常会有多个返回值。例如,在Lua中,可以这样写:

代码语言:javascript
复制
local _, _, r1, r2 = string.find(...)

( _在lua中是“丢弃”返回值的常见做法)

在PHP中,我必须编写类似这样的代码:

代码语言:javascript
复制
list(, , $r1, $r2) = string_find(...);

虽然在Lua中几乎到处都可以看到多个返回值的用法(几乎在每个程序中),但我在PHP中并不经常看到这种情况--除了while(list(...) = each(...)) { }示例。

对于多个返回值,特别是PHP中的多个返回值,您的看法是什么?是好的实践还是坏的代码?

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-04 19:00:55

在PHP中使用多个返回值并没有错。至少如果你用得好的话。在某些情况下,它确实可以提供帮助(例如,通过这种有趣的方式返回元组可以)。

当然,在记录这类方法时必须小心。另外,如果你从一个方法中返回了20个值,那么这个方法就有问题了。但是,再说一次,它与PHP无关。

现在,为什么在PHP中不经常使用它呢?在我看来,因为大多数编写PHP程序的人都没有意识到这一点。

票数 1
EN

Stack Overflow用户

发布于 2011-02-04 18:59:38

在PHP中,更常见的做法是返回一个数组或对象,然后直接使用该数组或对象,而不是将所有值赋给单独的变量。

代码语言:javascript
复制
function get_preferences() {
    return array('color' => 'red', 'size' => 'large', 'material' => 'cotton');
}

$prefs = get_preferences();

echo "We're sending you a " . $prefs['size'] . " shirt.";
票数 2
EN

Stack Overflow用户

发布于 2011-02-04 19:01:22

为了说明这一点:“返回一个数组”与“返回多个值”不同。稍后的是根本不可能的。

我有时会将数组作为一种"tupel“返回,但在极少数情况下,这是必需的。在大多数情况下,函数/方法将返回特定值。

例如,您需要一个在给定索引处拆分字符串的函数。在本例中,我将返回一个数组

代码语言:javascript
复制
function my_split ($string, $index) {
  return array(
    substr($string,0, $index),
    substr($string,$index)
  );
}
list($start, $end) = my_split("Hello World", 5);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4897166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档