首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP数组和按引用传递

PHP数组和按引用传递
EN

Stack Overflow用户
提问于 2011-05-26 20:28:05
回答 4查看 7.9K关注 0票数 10

以下模式过去在PHP中是可能的:

代码语言:javascript
复制
function foo($arr)
{
    // modify $arr in some way
    return $arr;
}

然后可以使用按值传递来调用:

代码语言:javascript
复制
$arr = array(1, 2, 3);
$newarr = foo($arr);

或按引用传递:

代码语言:javascript
复制
$arr = array(1, 2, 3);
foo(&$arr);

但是"Call-time pass-by-reference已弃用“。修改函数签名:

代码语言:javascript
复制
function foo(&$arr)

将处理按引用传递的情况,但将打破原始函数的双重用途,因为不再可能按值传递。

有什么办法可以解决这个问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-26 21:11:13

我认为这是你能得到的最接近的结果:

代码语言:javascript
复制
function foo(&$bar) { ... }

foo($array);                // call by reference
$bar = foo($_tmp = $array); // call by value

不幸的是,它需要对每个调用进行一些更改。

票数 5
EN

Stack Overflow用户

发布于 2011-05-26 20:29:44

双重用途的本质是愚蠢的,这就是为什么这种行为被否决的原因。按照您的建议修改函数签名。

票数 2
EN

Stack Overflow用户

发布于 2011-05-26 20:29:46

可悲的是,我不相信有一个方法可以绕过它。

只要让你的函数使用带有&的引用即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6138454

复制
相关文章

相似问题

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