1. 程式人生 > >PHP對象傳遞

PHP對象傳遞

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對象傳遞