gpt4 book ai didi

PHP/MongoDB : how does references work in php?

转载 作者:可可西里 更新时间:2023-11-01 09:16:04 28 4
gpt4 key购买 nike

我在 mongodb 用户组中问过这个问题,但对答案不满意,所以 - 也许 stackoverflow 的人可以启发我:

编辑:

我重写了我的问题,因为显然不清楚发生了什么——请在回答之前尝试我的测试代码。谢谢!

<?php

// test: a
$data = array('x' => 1);

function a(&$data) {
$m = new mongo();
$c = $m->selectDB('test')->selectCollection('test');

$c->insert($data);
}

a($data);
print_r($data);

// test: b
$data = array('x' => 1);

function b($data) {
$m = new mongo();
$c = $m->selectDB('test')->selectCollection('test');

$c->insert($data);
}

b($data);
print_r($data);

// test: c
$data = array('x' => 1);

function c(&$data) {
$data['_id'] = new MongoId();
}

c($data);
print_r($data);

// test: d
$data = array('x' => 1);

function d($data) {
$data['_id'] = new MongoId();
}

d($data);
print_r($data);

?>

输出:

Array
(
[x] => 1
)

Array
(
[x] => 1
[_id] => MongoId Object
(
)

)

Array
(
[x] => 1
[_id] => MongoId Object
(
)

)

Array
(
[x] => 1
)

我的问题:与我的普通 php 函数调用相比,为什么按引用传递对 mongo 插入的工作方式明显不同?

谢谢!

最佳答案

Kristina Chodorow,mongoDB php 扩展的维护者,在她的博客中写了一篇关于这个问题的好文章:

http://www.snailinaturtleneck.com/blog/2011/09/07/more-php-internals-references/

在我看来它阐明了 php 中的工作原理,我仍然认为 php 中的引用真的很尴尬......

关于PHP/MongoDB : how does references work in php?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3000399/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com