PHP对象传递

Posted

tags:

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


<?php
//对象的值传递

class Person
{
    //对象属性 成员变量
    public $name;
    protected $age;
    private $work;
    //对象行为 成员方法

}


//程序允许在内存的栈区
$zhangsan = new Person();
var_dump($zhangsan); //object(Person) #1对象标识符


$lisi = $zhangsan;  //传递的是对象标识符
var_dump($lisi); //$object(Person) #1 对象标识符


//每个包含对象的变量,都持有对象的引用(reference),而不是对整个对象的拷贝

<?php
//对象的值传递
class Person
{
    public $name;
}

$zhangsan = new Person();
$zhangsan->name = 'Zhang San';

$lisi = $zhangsan;//将zhangsan的对象标识符传递给lisi,即lisi对zhangsan对象的引用。


$lisi = 'abc'; // 'abc'不是地址标识符,因此lisi与zhangsan断开联系

echo $zhangsan->name . PHP_EOL;

<?php
//引用传递对象

class Person
{
    public $name;
}

$zhangsan = new Person();
$zhangsan->name = 'Zhang San';

$lisi = &$zhangsan;//直接指向zhangsan的内存。

$lisi = 'abc'; // 'abc'不是地址标识符,因此lisi与zhangsan断开联系


echo $zhangsan->name . PHP_EOL;//PHP Notice:  Trying to get property of non-object

echo $zhangsan . PHP_EOL;




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

将对象列表传递给片段

将 Google API 客户端对象从活动传递到滑动选项卡片段

将对象列表从片段传递到 recyclerView 适配器

将变量从 WordPress PHP 传递到 JavaScript

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

如何将数据从片段传递到对话框片段