我在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
)
我的问题是:为什么Mongo插入中的传引用与普通PHP函数调用表现不同?
谢谢!