15-12-2010, 03:00 PM
Que je mette un '&' dans l'en-tête de ma fonction set_obj, un passage par référence explicite donc, ou que je ne le fasse pas, j'obtiens le même résultat:
Donc, peut-être est-ce que tu déclenche des copies dans ton constructeur ou ailleurs ?
<?php
class tt {
public $v;
public $tt;
public function __construct($v=0) {
$this->v = $v;
}
public function set_obj(tt $obj) {
$this->tt = $obj;
}
public function show() {
echo 'val:',$this->tt->v,"\n";
}
public function pp() {
$this->v++;
}
}
$a = new tt;
$a->pp();
echo $a->v, "\n";
$b = new tt(5);
$b->set_obj($a);
$a->pp();
$b->show();
$a->pp();
$b->show();
$a->pp();
$b->show();
Donc, peut-être est-ce que tu déclenche des copies dans ton constructeur ou ailleurs ?