ホームページ  >  記事  >  バックエンド開発  >  foreach_PHP チュートリアルを使用する際に注意すべき問題

foreach_PHP チュートリアルを使用する際に注意すべき問題

WBOY
WBOYオリジナル
2016-07-21 14:53:01808ブラウズ

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

しかし、この使い方もエラーを引き起こしやすく、そして見つけるのも簡単ではありません。
PHP コード
  1. foreach($arras&) $value){
  2. $value .= '4'
  3. }
  4. ;
例を見るとより簡単です:


PHP code
  1. $arr = array( 「あ」'b ','c'); e',
  2. 'f '
  3. ); $value .= '4'; }
  4. //すべてが処理された後、ページテンプレートに出力します、最初の出力$arr2
  5. foreach($arr2 as $value){//通常の$値または $val
  6. //echo $value
  7. }
  8. //そして次のように出力します
  9. (
  10. $arr として$value){//$value または $val を使用する echo
  11. $value " /n"
  12. ;
  13. }
  14. ?>
  15. 出力結果が期待どおりかどうかを確認してみましょう。結果は次のようになります。

    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 の値は次のようになります:

    Array
    (
    [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 で参照を使用するときは注意してください。また、処理後すぐに参照関係を切断することで、後から上記のような事態が起こらないようにすることもできます。

    http://www.bkjia.com/PHPjc/371504.html
    PHP コード
    1. foreach($arr as &$value){
    2. $value .= ' 4'}
    3. unset(
    4. $value
    5. ) http://www.bkjia.com/PHPjc/371504.htmlwww.bkjia.com
    tru​​e
    技術記事

    $value の前に nbsp; as $value .= '4' ; を追加することで foreach を実行できますが、この使用法もエラーを引き起こしやすく、見つけるのは簡単ではありません。 例を見るとより簡単です: PHP コード ?php...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。