Autor Zpráva
tester
Profil *
Mám třídu Queue ve které je pole queue a metoda pro vrácení odkazu na pole. Zkoušel jsem nejdříve:
 public function getQueue(&$refQueue){
   $refQueue = $this->queue;
   return $refQueue;
 }

Pak:
 public function getQueue(&$refQueue){
   $refQueue =& $this->queue;
 }

Další třída obsahuje konstruktor kde první argument je objekt queue

 function __construct($parent, $results)
 {
 // $this->queue = $parent->queue->getQueue($this->queue); 
 $this->queue = $parent->queue;
 $parent->queue->getQueue($this->ref);
 }

V další metodě pod tou samou třídou se snažím vrátit to pole:
print_r($this->queue->queue); // přímo - funguje
print_r($this->ref); // nepřímo - nefunguje

Tzn. dostanu se k poli přímo, ale ne nepřímo. Při nepřímém postupu jsem schopen vrátit jen prázdné pole. V čem je problém? Rozdíl v těch dvou prvních kódech - použil jsem $this->ref = $parent->queue->getQueue($this->ref); pokud vracím odkaz; pokud nevracím odkaz tak dávám jen $parent->queue->getQueue($this->ref);
adacio
Profil
Zkus lépe popsat o co ti jde. Možná že o toto?
class TQueue
{
    protected $queue = ['test' => 'array'];

    public function &getQueue()
    {
        return $this->queue;
    }
}

class TDalsi
{
    protected $ref;

    protected $queue;

    public function __construct(TQueue $parent, $results = null)
    {
        $this->queue = $parent;

        $this->ref = $this->queue->getQueue();

        var_dump($this->ref);
    }
}

$queue = new TQueue();

$dalsi = new TDalsi($queue);

die;

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: