ホームページ > php教程 > php手册 > PHP foreachで&(and演算子)参照代入を使用する場合の注意点

PHP foreachで&(and演算子)参照代入を使用する場合の注意点

WBOY
リリース: 2016-06-13 12:18:53
オリジナル
974 人が閲覧しました

foreach は、次のように $value の前に & を追加することで配列の要素を簡単に変更できます。

PHP コード

コードをコピー コードは次のとおりです。以下のように:


foreach($arr as $value){
$value .= '4';
}


ただし、この使用法も間違いを引き起こすのは簡単ですが、それを見つけるのは簡単ではありません。

例を見るとより簡単です:

PHP コード

コードをコピーします コードは次のとおりです。 :


$arr = array('a','b','c');
$arr2 = array('d', 'e' , 'f');

foreach($arr as $value){//$value または $val
$value .=
} <🎜; を使用します。 >
//すべてが処理された後、ページのテンプレート出力に追加します。最初に出力 $arr2
foreach($arr2 as $value){//$value または $val の使用に使用されます
//echo $value;
}
//次のように出力します $arr;
foreach($arr as $value){//$value または $val
echo $value を使用します, "n";
}
?>

出力結果が期待どおりかどうかを確認してみましょう。結果は次のようになります:

コードをコピー コードは次のとおりです:

XML/HTML コード
a4
b4
b4

結果が予想と異なります これは引用に起因する問題です。

foreach($arr as &$value) 配列の走査の終了時に、参照関係は壊れていません。これは、$value と $arr の最後の単位 ($arr) の参照と同等です。 [2]。

foreach($arr2 as $value) に行くと、$value の値は常に配列単位の値で変化します。参照関係は壊れていないので、$arr[2] の値も変化します。それに応じて。 $arr2 が走査されるまで、$value の値は f であるため、$arr[2] の値も f になります。
このとき、$arr の値は次のようになります。

XML/HTML コード

コードをコピー コードは次のとおりです:

配列
(
[0] => a4
[1] => b4
[2] => f
)

これは、表示される最終出力とは異なります。次に、foreach($arr as $value) に進みます。同様に、$arr[2] の値も、キーが 1 の場合、つまり $arr[1]、$arr[2] と変化します。 ] 値は $arr[1] の値 (b4) にもなります。次に、キーが 2 の場合、$arr[2] の値は $arr[2] の値、つまり b4 になります。出力した結果です。

そのため、foreach で参照を使用するときは注意してください。また、処理後すぐに参照関係を切断することで、後から上記のような事態が起こらないようにすることもできます。

PHP コード

コードをコピー コードは次のとおりです。

foreach($arr as $value ){
$value .= '4'
}
unset($value);

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート