免费发布信息
微信公众号

PHP 函数中哪些变量类型作为引用传递时不会复制?

   来源:黔优网责任编辑:优优  时间:2024-09-20 16:59:24 浏览量:0

在 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 函数中哪些变量类型作为引用传递时不会复制?的详细内容,更多请关注本网内其它相关文章!

 
 
 
没用 0举报 收藏 0
免责声明:
黔优网以上展示内容来源于用户自主上传、合作媒体、企业机构或网络收集整理,版权争议与本站无关,文章涉及见解与观点不代表黔优网官方立场,请读者仅做参考。本文标题:PHP 函数中哪些变量类型作为引用传递时不会复制?,本文链接:https://www.qianu.com/help/43747.html,欢迎转载,转载时请说明出处。若您认为本文侵犯了您的版权信息,或您发现该内容有任何违法信息,请您立即点此【投诉举报】并提供有效线索,也可以通过邮件(邮箱号:kefu@qianu.com)联系我们及时修正或删除。
 
 

 

 
推荐图文
推荐帮助中心
最新帮助中心