PHP での foreach と参照の使用によって引き起こされるプログラムのバグの問題についての紹介
Jun 13, 2016 am 11:58 AM
arraybugforeachphp導入コード使用そしてコピーに導く引用のプログラム質問
コードをコピー コードは次のとおりです。
$a = array(1, 2);
$b = array( 11, 12 );
foreach($a as &$r){
}
foreach($b as $r){
}
echo $a[1];出力 12
2 つのループの本来の目的は次のとおりです。最初のループはループ内の要素の内容を変更する必要があるため、参照を使用しますが、2 番目のループは $r を使用するだけです。しかし、なぜ $a[1] の値が変更されたのでしょうか?
$a の反復が完了すると、$r は $a[1] の値を変更します。 $r は $a [1] を変更することを意味します。このとき、コード内で $r が変更されておらず、$a[1] も変更されていないことに驚かれるかもしれません。
実際には、foreach は動作します。配列のコピー上で実行されるため、1 回の反復は以下と同等になります:
コードのコピー コードは次のとおりです:
>for($i=0; $i
}
この状況を回避するには、
Copy code を実行する必要があります。最初の反復のコードは次のとおりです:
unset($r);
現在の環境から $r 変数 (参照変数) を削除します。
前の例ではない場合でも、最初の反復の後、同様のステートメントを再度実行する可能性は十分にあります。
コードをコピー コード
$r = 123;
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事
<🎜>:庭を育てる - 完全な突然変異ガイド
3週間前ByDDD
<🎜>:バブルガムシミュレーターインフィニティ - ロイヤルキーの取得と使用方法
3週間前By尊渡假赌尊渡假赌尊渡假赌
マンドラゴラ:魔女の木のささやき - グラップリングフックのロックを解除する方法
3週間前By尊渡假赌尊渡假赌尊渡假赌
Nordhold:Fusion System、説明
3週間前By尊渡假赌尊渡假赌尊渡假赌

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
