PHPでforeach構文を使用してみます。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■インデックス付き配列の要素をループする(繰り返し)
PHPでforeach構文を使用し、インデックス付き配列の要素をループ(繰り返し)処理を行ってみます。
■コード
<?php
$numbers = [1,2,3,4,5,6,7,8,9,10];
foreach ($numbers as $number){
echo $number ."<br>";
}
?>
今回はnumbersという配列を作成し、その中に要素を格納します。格納後、foreach構文を使用し、numbersという配列の要素を、numberという変数に代入します。
代入後、echo文でnumberという変数に代入した要素を出力してみます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
実行させてみると、numberという変数に代入したnumbersという配列の要素が出力されることが確認できました。
■「&(アンパサンド)」記号を使用する
次にforeach構文を使用し、配列の要素を、変数に代入する際に「&(アンパサンド)(アンド)」記号を使用してみます。
■コード
<?php
$numbers = [1,3,5,10];
foreach ($numbers as &$number){
$number *= 2;
}
print_r($numbers);
?>
numbersという配列を作成し、その中に要素を格納します。格納後、foreach構文を使用し、numbersという配列の要素を、numberという変数に代入しますが、この時にnumberという変数に「&(アンパサンド)」記号を使用してみます。
使用後、numberという変数の中に格納した要素すべてに「2」を乗法・掛け算してみます。
最後にprint_r()関数で、numbersという配列の要素を出力してみます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
実行してみると、numbersという配列の要素を、numberという変数に代入して、乗法・掛け算を行いましたが、numbersという配列の要素が書き換わっていました。「&(アンパサンド)」記号を使用すると、影響される範囲が広い。
■連想配列の要素を繰り返し処理する
では、次にPHPでforeach構文を使用し、インデックス付き配列の要素をループ(繰り返し)処理を行ってみます。
■コード
<?php
$moji = [
'A' => 'Black',
'B' => 'Yellow',
'C' => 'White',
'D' => 'Glay'
];
foreach($moji as $key => $value){
echo $key . ':' . $value . '<br>';
}
?>
mojiという配列を作成し、その中に要素を格納します。格納後、foreach構文を使用し、mojiという配列の中の要素がkeyという変数に割り当てられます。さらにmojiという配列の中の要素がkeyという変数が、valueという変数に割り当てられます。
割り当てた後にecho文でkeyという変数と、valueという変数を出力してみます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
実行させてみると、keyという変数と、valueという変数が出力できることを確認できました。
■オブジェクトのpublicプロパティを反復処理する
では、次にPHPでforeach構文を使用し、オブジェクトのpublicプロパティをループ(繰り返し)処理を行ってみます。
■コード
<?php
class Person{
public $A;
public $B;
public $C;
public $D;
public function __construct($A,$B,$C,$D)
{
$this->A = $A;
$this->B = $B;
$this->C = $C;
$this->D = $D;
}
}
$number = new Person('私',1,'自分',5);
foreach($number as $propkey => $propValue){
echo $propkey . ': ' . $propValue . '<br>';
}
?>
Personという定義されたクラスを用意しました。その中には、4つのpublicプロパティが作りました。次に、numberという箱を作成し、その中に、Personという名前のクラスの新しいオブジェクトを作成しました。
foreach構文を使用し、numberという箱の4つのpublicプロパティを、propkeyという変数に代入し、さらに4つのpublicプロパティの値をpropValueという変数に代入します。
代入後、echo文で、propkeyという変数と、propValueという変数を出力してみます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
実行してみると、propkeyという変数と、propValueという変数が出力されることが確認できました。
コメント