PHP işlevi, değeri veya referans dönüş?

2 Cevap

PHP return deyimi kullandığınızda, sonuç değere veya başvuruya göre iade edilecektir?

Teşekkürler! Andree.

2 Cevap

PHP, her şey (bu istisnaları vardır eminim ama ben herhangi bir atm düşünemiyorum) varsayılan değeri ile döndürülür. Varsayılan olarak referans olarak geçirilen nesneler (PHP> 5.0) hariç.

Görünüşe göre, bu başvuru ile döndürülür. Bu basit kod bunu kanıtı.

<?php

class InsideObject
{
    public $variable;
}

class OutsideObject
{
    private $insideObject;

    public function __construct()
    {
        $this->insideObject = new InsideObject();
        $this->insideObject->variable = '1';
    }

    public function echoVar()
    {
        echo $this->insideObject->variable;
    }

    public function getInsideObject()
    {
        return $this->insideObject;
    }
}

$object = new OutsideObject();
$object->echoVar(); // should be 1

$insideObject = $object->getInsideObject();
$insideObject->variable = '2';

$object->echoVar(); // should be 2