PHP リファレンス値渡し学習メモ_PHP チュートリアル
PHP で参照割り当てを使用するには、元のオブジェクトの前に & を追加するだけです $a = &$b; 実際、PHP における参照は、同じ値を指す異なる名前を持つ 2 つの変数です。
引用とは
PHP でのクォートとは、同じ変数の内容に異なる名前でアクセスすることを意味します。これは C ポインターとは異なり、参照はシンボル テーブルのエイリアスです。 PHP では変数名と変数の内容が異なるため、同じ内容でも異なる名前が付けられることに注意してください。最も近い類似点は、Unix のファイル名とファイル自体です。変数名はディレクトリ エントリであり、変数の内容はファイル自体です。参照は、Unix ファイル システムのハードリンクと考えることができます。
1: 変数への参照
コードは次のとおりです | コードをコピー |
$a =100; $b = &$a; echo $b; // ここに 100 を出力します echo $a; // ここでは 100 が出力され、$a と $b の値が両方とも 100 であることを示します。 $b= 200; echo $a; //200 がここに出力されます echo $b; //200 がここに出力され、同じアドレスを使用していることがわかります。どちらかを変えるともう一方も変わります。 ?> |
2: 関数内で値を渡します。
コードは次のとおりです | コードをコピー |
関数 main($a,$b){ |
3: オブジェクトの参照渡し
オブジェクトの参照
コードは次のとおりです | コードをコピー |
クラスクラブ{ var $name="レアル・マドリード"; } $b=新しいクラブ; $c=$b; echo $b->name;// ここにレアル・マドリードを出力します echo $c->name;//レアル・マドリードがここに出力されます $b->name="ロナウド"; echo $c->name;//ロナウド をここに出力 ?> |
引用解除
参照の設定を解除すると、変数名と変数の内容の間のバインドが解除されるだけです。これは、変数の内容が破壊されることを意味するものではありません。例:
コードは次のとおりです | コードをコピー |
$a = 'ロナウド' |
$b の設定は解除されず、$a のみが解除されます。
例、参照渡し
test1.php
コードは次のとおりです | コードをコピー |
/** |
コードは次のとおりです
機能テスト(&$a) | |
$a=$a+100;
}
$b=1;
echo $b;//出力 1 |
関数&test()
$b=$b+1; $b をエコーします。 $b を返します。 } | $a=test();//このステートメントは、$b の値が 1 であることを出力します | $a=5||||
$a=&test();//このステートメントは、$b の値が 3 であることを出力します。ここで、戻り値 $b の $b 変数のメモリ アドレスと $a 変数のメモリ アドレスは同じ場所を指します。 $a=5; //$b を返す変数の値が変更されました $a=test();//このステートメントは、$b の値が 6 であることを出力します /** 以下で説明します:
|