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

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

Jun 13, 2016 pm 12:18 PM
ampforeachphpそして使用存在する引用知らせ欲しい割り当てオペレーター合格質問

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);

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

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

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境