私はグーグルをしてきましたが、何も見つかりません。
$x->func(&$string, $str1=false, $str2=false);
それは何ですか&
前 $string
&$string
行う?
参照によってその配列値を割り当てています。
引数を参照(&$)経由で渡し、$を使用して引数を参照経由で渡すと、元の変数で作業します。つまり、関数内で変数を変更すると、関数の外側でも変更されます。コピー、関数はこの変数のコピーインスタンスを作成し、このコピーで作業するため、関数内で変更しても、それ以外では変更されません
参照: http://www.php.net/manual/en/language.references.pass.php
&は、変数への参照を関数のクローンではなく関数に渡す必要があることを示しています。
この状況では、関数がパラメーターの値を変更すると、渡される変数の値も変更されます。
ただし、PHP 5:
詳細についてはこちらをご覧ください: http://www.php.net/manual/en/language.references.pass.php
そして、ここには多くの情報があります: 参照—この記号はPHPで何を意味しますか?
文字列の動作の例:
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" );
出力:
C:\test>php test.php
sOuterTest1 is changed
sOuterTest2 is original
sOuterTest3 is changed
&=参照渡し:
参照により、2つの変数が同じコンテンツを参照できます。つまり、変数はそのコンテンツを指します(そのコンテンツになるのではなく)。参照渡しでは、2つの変数が異なる名前の同じコンテンツを指すことができます。アンパサンド(&)は、参照される変数の前に配置されます。
& –参照渡し。文字列値の代わりに参照で渡されます。
これは、文字列への参照をメソッドに渡すことを意味します。メソッド内の文字列に加えられたすべての変更は、コード内のそのメソッドの外部にも反映されます。
参照: PHPの=&演算子
例:
$string = "test";
$x->func(&$string); // inside: $string = "test2";
echo $string; // test2
&演算子がなくても、変数に「test」が表示されます。