J'ai fait des recherches sur Google, mais je ne trouve rien.
$x->func(&$string, $str1=false, $str2=false);
qu'est ce que ça &
avant $string
&$string
faire?
Vous affectez cette valeur de tableau par référence.
passer l'argument par la référence (& $) et par $, c'est que lorsque vous passez l'argument par la référence, vous travaillez sur la variable d'origine, signifie que si vous la changez à l'intérieur de votre fonction, elle sera également changée en dehors d'elle, si vous passez l'argument en tant que copie, la fonction crée une instance de copie de cette variable et travaille sur cette copie, donc si vous la modifiez dans la fonction, elle ne sera pas modifiée en dehors d'elle
Réf: http://www.php.net/manual/en/language.references.pass.php
Le & indique qu'une référence à la variable doit être passée dans la fonction plutôt qu'un clone de celle-ci.
Dans cette situation, si la fonction modifie la valeur du paramètre, la valeur de la variable transmise changera également.
Cependant, vous devez garder à l'esprit les points suivants pour PHP 5:
Vous pouvez trouver plus d'informations ici: http://www.php.net/manual/en/language.references.pass.php
Et il y a beaucoup d'informations ici: Référence - Que signifie ce symbole en PHP?
Un exemple des comportements des chaînes:
function changeString( &$sTest1, $sTest2, $sTest3 ) {
$sTest1 = 'changed';
$sTest2 = 'changed';
$sTest3 = 'changed';
}
$sOuterTest1 = 'original';
$sOuterTest2 = 'original';
$sOuterTest3 = 'original';
changeString( $sOuterTest1, $sOuterTest2, &$sOuterTest3 );
echo( "sOuterTest1 is $sOuterTest1\r\n" );
echo( "sOuterTest2 is $sOuterTest2\r\n" );
echo( "sOuterTest3 is $sOuterTest3\r\n" );
Les sorties:
C:\test>php test.php
sOuterTest1 is changed
sOuterTest2 is original
sOuterTest3 is changed
& = En passant par référence:
Les références permettent à deux variables de faire référence au même contenu. En d'autres termes, une variable pointe vers son contenu (plutôt que de devenir ce contenu). Le passage par référence permet à deux variables de pointer vers le même contenu sous des noms différents. L'esperluette (&) est placée avant la variable à référencer.
& - Passer par référence. Il est transmis par référence au lieu d'une valeur de chaîne.
Cela signifie que vous passez une référence à la chaîne dans la méthode. Toutes les modifications apportées à la chaîne dans la méthode seront également reflétées en dehors de cette méthode dans votre code.
Voir aussi: PHP's = & operator
Exemple:
$string = "test";
$x->func(&$string); // inside: $string = "test2";
echo $string; // test2
sans l'opérateur &, vous verriez toujours "test" dans votre variable.