如何将值重新分配给传递给函数的php对象
如果我在PHP中将一个对象传递给一个函数,它将通过引用传递,如果我将该对象设置为一个新对象,它将不会“粘滞”。我如何将一个新对象分配给一个传入的对象,而不遍历所有属性 e、 g:如何将值重新分配给传递给函数的php对象,php,Php,如果我在PHP中将一个对象传递给一个函数,它将通过引用传递,如果我将该对象设置为一个新对象,它将不会“粘滞”。我如何将一个新对象分配给一个传入的对象,而不遍历所有属性 e、 g: 可能需要返回新值,然后才能访问新值: function Foo($obj) { // do stuff and create new obj $obj = $newObj; // upon function exit, the original $obj value is as it was
可能需要返回新值,然后才能访问新值:
function Foo($obj)
{
// do stuff and create new obj
$obj = $newObj;
// upon function exit, the original $obj value is as it was
return $obj;
}
可能需要返回新值,然后才能访问新值:
function Foo($obj)
{
// do stuff and create new obj
$obj = $newObj;
// upon function exit, the original $obj value is as it was
return $obj;
}
如果我在PHP中将一个对象传递给一个函数,它将通过引用传递
在PHP中,对象通过“指针值”传递,例如,指向对象的指针被复制到函数参数中:
function test($arg) {
$arg = new stdClass();
}
$a = new stdClass();
$a->property = '123';
test($a);
var_dump($a->property); // "123"
要通过指针引用进行传递,请在参数前面加一个符号:
function test(&$arg) {
$arg = new stdClass();
}
$a = new stdClass();
$a->property = '123';
test($a);
var_dump($a->property); // Undefined property
但应避免指针引用,因为它们容易混淆,而只返回新对象:
function test($arg) {
return new stdClass();
}
如果我在PHP中将一个对象传递给一个函数,它将通过引用传递
在PHP中,对象通过“指针值”传递,例如,指向对象的指针被复制到函数参数中:
function test($arg) {
$arg = new stdClass();
}
$a = new stdClass();
$a->property = '123';
test($a);
var_dump($a->property); // "123"
要通过指针引用进行传递,请在参数前面加一个符号:
function test(&$arg) {
$arg = new stdClass();
}
$a = new stdClass();
$a->property = '123';
test($a);
var_dump($a->property); // Undefined property
但应避免指针引用,因为它们容易混淆,而只返回新对象:
function test($arg) {
return new stdClass();
}
“如果我在PHP中将一个对象传递给一个函数,它是通过引用传递的”——这是不正确的。阅读差异:。如果要将对象传递给函数并希望函数能够替换对象,则必须使用引用。或者,更好的方法是让函数返回另一个对象,并在调用代码中进行替换。可能重复“如果我在PHP中将对象传递给函数,它将通过引用传递”——这是不正确的。阅读差异:。如果要将对象传递给函数并希望函数能够替换对象,则必须使用引用。或者,更好的方法是让函数返回另一个对象,并在调用代码中进行替换。这可能的重复将只返回一个仍然指向原始对象的变量。要返回新实例,您需要克隆对象,否则在此处返回对象没有什么好处(除了更好地读取代码)。这只会返回一个仍然指向原始对象的变量。要返回一个新实例,您需要克隆对象,否则在这里返回对象没有什么好处(除了更好地阅读代码)。