在 php 中,对象、数组和资源变量作为引用传递时不会复制。这意味着函数内对这些变量的更改会反映到原始变量上。例如,当对象作为引用传递时,函数内对对象属性的更改会反映到原始对象;当数组作为引用传递时,函数内对数组元素的更改会反映到原始数组;当资源作为引用传递时,函数内对资源的操作会反映到原始资源。

PHP 中哪些变量类型作为引用传递时不会复制?
在 PHP 中,函数参数可以作为值传递或引用传递。当作为引用传递时,函数内的任何更改都会反映到原始变量。
但是,某些变量类型在作为引用传递时不会复制,包括:
立即学习“PHP免费学习笔记(深入)”;
实战案例
以下示例演示了当作为引用传递时,对象、数组和资源变量的行为:
class MyClass {
public $name;
}
$object = new MyClass();
$object->name = "Original";
$array = ["one", "two", "three"];
$resource = fopen("test.txt", "w");
function change($object, &$array, &$resource) {
$object->name = "Changed";
$array[0] = "Four";
fwrite($resource, "Hello\n");
}
change($object, $array, $resource);
echo $object->name; // Changed
echo $array[0]; // Four
echo fread($resource, filesize("test.txt")); // Hello在函数 change 中,$object、$array 和 $resource 作为引用传递。这意味着对这些变量的任何更改都会反映到它们在函数外部的值。因此,$object->name、$array[0] 和 $resource 的值都发生了更改。
以上就是PHP 函数中哪些变量类型作为引用传递时不会复制?的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号