2010-11-16 5 views
3

Dans un script héritage php je trouve la ligne de code suivante:Notation inhabituelle de passage par référence?

$CacheLite =& ("string"); 

Ce qui provoque une erreur:

Parse error: syntax error, unexpected '(', expecting T_NEW or T_STRING or T_VARIABLE or '$'

Est-ce une erreur ou une manière de passer par référence ou quelque chose d'autre que je don 't sais. Dois-je activer/désactiver quelque chose dans ma configuration php pour que cela fonctionne?

Répondre

4

Vous ne pouvez pas affecter par référence à une valeur littérale ou à une expression en PHP; il doit être une référence à une variable. Je n'ai aucune idée comment cette ligne de code est là (pourquoi $CacheLite est-elle affectée à une chaîne aléatoire de toute façon?) - probablement une erreur dans le code existant.

+0

J'ai pris le & off comme une solution pragmatique ... et je paie pour ce morceau de ****. Merci d'avoir répondu! – markus

3

L'affectation par référence existe, mais seules les variables peuvent être transmises/attribuées comme références. Les valeurs (entiers, chaînes, etc.) et les expressions (("string")) ne le peuvent pas.

Voici comment vous attribuez par référence:

$a = "string"; 
$b = &$a; 
+0

Merci, je n'ai aucune idée de ce qu'ils essayaient de faire, je viens de supprimer le &. – markus

1

Ce doit être une erreur. Il n'y a pas de telle syntaxe. Créer une référence à un littéral ou une expression est juste un faux.

Questions connexes