×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
PHPでのプログラムでは変数の参照を扱う場合には、変数の先頭に & を付けます。 配列の要素を操作する場合には以下の様に、配列の中身を受ける変数の先頭に & を付けて処理します。
以下の例では、数値配列を設定し、配列内の要素の値を10倍しています。
<?php //配列宣言 $arrData0 = array(1, 2, 3); var_dump($arrData0); //配列の値を「$arrValue」で受ける foreach ($arrData0 as &$arrValue) { //値を10倍する $arrValue *= 10; } //最後の要素の参照を解放 unset($arrValue); //内容の表示 var_dump($arrData0); ?>
結果は以下の表示になります。
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } array(3) { [0]=> int(10) [1]=> int(20) [2]=> int(30) }
配列の全ての要素が10倍されていることが分かります。
ここで、別々の変数の参照を配列に持ち処理する方法を示します。
<?php //3個の変数を宣言 $data1 = 1; $data2 = 2; $data3 = 3; //3個の変数を二重配列にして参照配列の宣言 $arrData = array( array( &$data1 ) , array( &$data2 ) , array( &$data3 ) ); //二重配列のループ処理で各変数の値を10倍する foreach ($arrData as $arrValue) { $arrValue[0] *= 10; } //内容の表示 var_dump($arrData); var_dump($data1); var_dump($data2); var_dump($data3); ?>
この結果は以下の様に、3個の変数の値がそれぞれ10倍されたことが分かります。
array(3) { [0]=> array(1) { [0]=> &int(10) } [1]=> array(1) { [0]=> &int(20) } [2]=> array(1) { [0]=> &int(30) } } int(10) int(20) int(30)
PR
コメント