2009-12-10 12 views

Répondre

6

Ye Olde Jours de PHP4, = & était nécessaire lors de la construction des objets. En PHP 5, ce n'est pas le cas.

=& fait l'affectation de référence.

.: par exemple

$a = 'a'; 
$b =& $a; 
$b = 'b'; 
echo $a; // Prints 'b', since a and b have been linked by &=. 

En d'autres termes, il a ses usages, mais pas lors de l'instanciation d'un objet. Pour cette utilisation, il a été déprécié.

2

En PHP4, les objets étaient passés par valeur par défaut plutôt que par référence. Cela signifie qu'une copie de l'objet a été faite lors de l'assignation. Si vous vouliez passer l'objet par référence plutôt que par valeur, vous pouvez utiliser l'opérateur &. En PHP5, les objets sont passés par référence par défaut. Le & n'est donc plus nécessaire pour les objets. Les primitives (ou scalaires comme on les appelle souvent dans le monde PHP) sont toujours passées par valeur par défaut.

Je trouve que lors de la migration du code OO PHP4 vers PHP5, beaucoup de & s sont supprimés.

+0

voir http://docs.php.net/language.oop5.references – VolkerK