如何在需要引用传递的情况下按值传递

How to pass by value where a pass by reference is requierd

提问人:no0ob 提问时间:8/6/2018 更新时间:8/6/2018 访问量:25

问:

我需要按值传递一个对象,我不想更改函数,因为它可能会在其他路径中调用并根据他们的需要正常工作,但这个特定的路径需要按值传递。

例如,函数为:

public function storeInDB(&$data) {
 ...
//adding data to table in db
...
}

我想传递$data之后我会立即更改$data,例如在循环中调用上述函数:

var $items->order_id = $this->getOrderId();
foreach($products as $product){
                $items->product_id = $product['id'];
                $testItems->storeInDB($items);
            }

问题是$data变化,我的表中只有 1 行,预计是 .count($products)

PHP 按引用 传递值

评论

0赞 newacct 8/25/2018
我不认为是有效的语法var $items->order_id
0赞 newacct 8/25/2018
此外,“对象”在 PHP5 中不是值,并且总是通过引用(指向对象的指针)进行操作。 并且是引用,而不是对象。即使按值传递引用,也会有两个引用指向同一对象,它们可以修改同一对象。所以我不认为按值传递是你的问题。事实上,如果未赋值给 inside(即 ),则 pass-by-value 和 pass-by-reference 之间没有区别。$items$data$datastoreInDB()$data = ...

答: 暂无答案