2010-05-11 5 views
1

quelqu'un peut-il s'il vous plaît me dire comment passer une variable en tant que/par valeur? ce que je fait une erreur sur le code ci-dessous, ses spectacles une erreur d'analyse syntaxiqueen passant une variable par valeur en utilisant php

 
$a = &$$b 
+1

$ a = '&$$b';? Je ne suis pas sûr de ce que vous essayez d'accomplir. –

Répondre

2

Bien qu'il puisse être un peu difficile à suivre, votre code est parfaitement valide et est en train de faire ce que vous voulez faire:

$b = 'test'; 
$test = 100; 
$a = &$$b; 
echo $a; // displays 100 

Vous obtenez probablement une erreur parce que $ b est pas définie.

+0

merci pour votre réponse. –

1

Passing en valeur est le comportement normal de PHP. Donc, lorsque vous écrivez simplement $a = $b, la valeur de $b sera affectée à $a. Ce que vous avez écrit est une affectation de référence, en déclarant $a comme une référence à la variable identifiée par la valeur $b (voir variable variable).

0

Transmettre par valeur?

En interne, php passe toujours par référence. Ce n'est que lorsque vous affectez ou modifiez les valeurs que php alloue une nouvelle mémoire.

Par exemple:

$a = 5; 
$b = $a; // this points to the same memory location as a 
$a = 2; // now b still points to the same memory location which has 5, but now $a points to a new location with a value of 2 

donc il n'y a vraiment pas besoin de passer par référence/valeur. Vous avez seulement besoin d'ajouter l'indicateur de référence (&) lorsque vous avez besoin que php affecte des valeurs au même emplacement de mémoire et n'alloue pas de nouvelle mémoire.

Questions connexes