45 votes

PHP =& opérateur

Sont à la fois ces instructions PHP faire la même chose?:

$o =& $thing;

$o = &$thing;

38voto

judda Points 2878

Oui, ils sont tous les deux exactement la même chose. Ils prennent juste la référence de l'objet et de référence dans la variable $o. Veuillez noter, thing doivent être des variables.

27voto

Scott Lahteine Points 735

Ils ne sont pas la même chose, syntaxiquement parlant. L'opérateur est le atomique =& et ce qui importe réellement. Par exemple, vous ne pouvez pas utiliser l' =& opérateur dans une expression ternaire. Ni l'un ni l'suivantes sont valides syntaxe:

$f = isset($field[0]) ? &$field[0] : &$field;
$f =& isset($field[0]) ? $field[0] : $field;

Donc, au lieu de cela vous pouvez utiliser ce:

isset($field[0]) ? $f =& $field[0] : $f =& $field;

13voto

Rich Bradshaw Points 33598

Ils ont tous deux donner un attendu T_PAAMAYIM_NEKUDOTAYIM erreur.

Si vous signifiait $o = &$thing; alors que lui assigne la référence de la chose à l'o. Voici un exemple:

$thing = "foo";

$o = &$thing;

echo $o; // echos foo

$thing = "bar";

echo $o; // echos bar

1voto

Emil Vikström Points 42251

Oui, ils le font. $o deviendra une référence à l' thing dans les deux cas (je suppose qu' thing n'est pas une constante, mais en fait quelque chose de significatif en tant que variable).

1voto

Si vous signifiait thing avec un $ avant eux, alors oui, les deux sont de l'assignation par référence. Vous pouvez en apprendre plus à propos des références en PHP ici: http://www.php.net/manual/en/language.references.whatdo.php

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X