>  기사  >  백엔드 개발  >  PHP 객체 및 참조

PHP 객체 및 참조

伊谢尔伦
伊谢尔伦원래의
2016-11-23 13:49:15911검색

php5의 객체 프로그래밍에서 자주 언급되는 핵심은 "객체는 기본적으로 참조로 전달된다"는 것입니다. 그러나 실제로 이것은 완전히 정확하지 않습니다. 다음은 설명할 몇 가지 예입니다.

PHP의 참조는 별칭입니다. 즉, 두 개의 서로 다른 변수 이름이 동일한 내용을 가리킵니다. PHP5에서는 객체 변수가 더 이상 전체 객체의 값을 보유하지 않습니다. 실제 개체 콘텐츠에 액세스하려면 식별자를 저장하기만 하면 됩니다. 객체가 매개변수로 전달되거나 결과로 반환되거나 다른 변수에 할당되면 다른 변수는 원래 변수와 참조 관계가 없지만 둘 다 동일한 식별자의 복사본을 저장합니다. 같은 개체.

예제 #1 참조 및 개체

<?php
    class A {
        public $foo = 1;
    }
    $a = new A;
    $b = $a; // $a ,$b都是同一个标识符的拷贝
    // ($a) = ($b) = <id>
    $b->foo = 2;
    echo $a->foo."\n";
    $c = new A;
    $d = &$c; // $c ,$d是引用
    // ($c,$d) = <id>
    $d->foo = 2;
    echo $c->foo."\n";
    $e = new A;
    function foo($obj) {
        // ($obj) = ($e) = <id>
        $obj->foo = 2;
    }
    foo($e);
    echo $e->foo."\n";
?>

위 루틴은 다음을 출력합니다.

2
2
2


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.