PHPでforeach構文を使用する

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という変数が出力されることが確認できました。

コメント

タイトルとURLをコピーしました