PHPでのプログラムでは変数の参照を扱う場合には、変数の先頭に & を付けます。 配列の要素を操作する場合には以下の様に、配列の中身を受ける変数の先頭に & を付けて処理します。
以下の例では、数値配列を設定し、配列内の要素の値を10倍しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php //配列宣言 $arrData0 = array (1, 2, 3); var_dump( $arrData0 ); //配列の値を「$arrValue」で受ける foreach ( $arrData0 as & $arrValue ) { //値を10倍する $arrValue *= 10; } //最後の要素の参照を解放 unset( $arrValue ); //内容の表示 var_dump( $arrData0 ); ?> |
結果は以下の表示になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | array (3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } array (3) { [0]=> int(10) [1]=> int(20) [2]=> int(30) } |
配列の全ての要素が10倍されていることが分かります。
ここで、別々の変数の参照を配列に持ち処理する方法を示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?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倍されたことが分かります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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) |
ショッピングサイト一通りを最初から自分で作ってみることで、PHPでのシステム開発を学べる入門書です。
コメント