php面向对象值传递

Posted g2zh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php面向对象值传递相关的知识,希望对你有一定的参考价值。

php中值传递方式,2中

  值传递:传递的时候,拷贝的是数据本身。默认都是值传递

    结果:传递完成,有了2份同样的数据,且2个变量“相互独立”,不会相互影响

  引用传递:传递的时候,拷贝的是引用关系(数据的内存地址)。需要使用“&”符合才能实现引用传递

    结果:传递完成,数据仍然只要一份,但是2个变量共同指向该数据。

  示例:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<?php
//值传递
$a = 10;
function fun($b) {
    $b = $b +20;
    return $b;
}
echo "值传递结果--a:".$a." b:".fun($a)."<br />";

//引用传递
class cla {
    public $a = 10;
}

$c1 = new cla();
$c2 = $c1;

$c2->a = 20;
echo "<hr />引用传递结果--c1->a:".$c1->a." c2->a:".$c2->a."<br />";
var_dump($c1);echo "<br />";
var_dump($c2);echo "<br />";
echo "<hr />";
unset($c1);
var_dump($c1);echo "<br />";
var_dump($c2);echo "<br />";
?>
</body>
</html>

  结果:

以上是关于php面向对象值传递的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

是否有简单的 PHP 代码来区分“将对象作为引用传递”与“将对象引用作为值传递”?

Java面向对象-方法的值传递和引用传递

php面向对象构造函数,析构函数

PHP 其他(非面向对象)语法细节