$value)"。"/> $value)"。">

ホームページ  >  記事  >  バックエンド開発  >  php foreachの書き方とは

php foreachの書き方とは

藏色散人
藏色散人オリジナル
2021-06-24 11:25:201741ブラウズ

php foreach の記述方法は 2 つあります: 1. "foreach (iterable_expression as $value)"; 2. "foreach (iterable_expression as $key => $value)"。

php foreachの書き方とは

この記事の動作環境:Windows7システム、PHP7.1バージョン、DELL G3パソコン

php foreachの書き方とは?

foreach 構文構造は、配列を走査する簡単な方法を提供します。 foreach は配列とオブジェクトにのみ適用できます。他のデータ型の変数や初期化されていない変数に適用しようとすると、エラー メッセージが表示されます。構文は 2 つあります。

foreach (iterable_expression as $value)
    statement
foreach (iterable_expression as $key => $value)
    statement

最初の形式は、指定された iterable_expression イテレータを反復処理します。ループを通過するたびに、現在のセルの値が $value に割り当てられます。

2 番目の形式は同じことを行いますが、現在のユニットのキー名も各ループの変数 $key に割り当てられる点が異なります。

foreach は、current() や key() などの関数で使用される配列の内部ポインタを変更しないことに注意してください。

トラバーサル オブジェクトをカスタマイズすることもできます。

$value の前に & を追加すると、配列の要素を簡単に変更できます。このメソッドは、値をコピーするのではなく、参照によって割り当てます。

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // 最后取消掉引用
?>

警告

配列の最後の要素の $value 参照は、foreach ループの後も残ります。 unset() を使用して破棄することをお勧めします。そうしないと、次の状況が発生します:

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// 现在 $arr 是 array(2, 4, 6, 8)
// 未使用 unset($value) 时,$value 仍然引用到最后一项 $arr[3]
foreach ($arr as $key => $value) {
    // $arr[3] 会被 $arr 的每一项值更新掉…
    echo "{$key} => {$value} ";
    print_r($arr);
}
// ...until ultimately the second-to-last value is copied onto the last value
// output:
// 0 => 2 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 2 )
// 1 => 4 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 4 )
// 2 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
// 3 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
?>

配列定数の値を参照によって走査できます:

<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

注:

foreach は " による抑制をサポートしていません。 @" エラー メッセージ機能。

推奨学習: 「PHP ビデオ チュートリアル

以上がphp foreachの書き方とはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。