ホームページ  >  記事  >  バックエンド開発  >  PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?

PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?

WBOY
WBOYオリジナル
2016-08-04 09:19:291382ブラウズ

以下のコードを参照してください:

処理前には 2 つの配列がありますarrTitlearrHref

内容arrTitleは以下の通りです

PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?

arrHref内容は以下の通りです

PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?

リーリー

上記の PHP コードを実行して、title と href の各項目の最初の要素を取り出して削除します。しかし、実行すると次のようになります。 array_combine之前,$arrTitle

PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?ただし、実行中は

次のようになります:

array_combine之后,$arrTitle

PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?なぜ、

修正が行われたのでしょうか?

$arrTitle的最后一个元素变成了array_combine()的结果,而array_combine()函数并没有对$arrTitle

返信内容:

以下のコードを参照してください:

処理前には 2 つの配列があります

arrTitlearrHref内容

は以下の通りです

arrTitle

PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?

内容は以下の通りです

arrHref

リーリー PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?上記の PHP コードを実行して、title と href の各項目の最初の要素を取り出して削除します。しかし、実行すると次のようになります。

array_combine之前,$arrTitle

ただし、実行中は

次のようになります:PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?

array_combine之后,$arrTitle

なぜ、

修正が行われたのでしょうか? PHP が元の配列に影響を与えるために array_combine メソッドを使用するのはなぜですか?

$arrTitle的最后一个元素变成了array_combine()的结果,而array_combine()函数并没有对$arrTitle リーリー

$title は上記のループ内の $title と同じ名前ですが、名前を変更するだけです。 phpにはブロックスコープはありません。

このバグは解決されました。重複した名前の問題を指摘してくれた @whyreal に感謝します。

foreach ループでは、要素の最後のセットが

であるためです。

PHP にはブロックレベルのスコープがないため、$title = array_combine($arr1, $arr2) では、$title はそれが指す最後の要素グループも変更します

その結果、バグが発生します。 引用方式遍历数组,当循环结束时,$title指向了$arrTitle このバグを解決するには、

の後ろの名前を変更します。

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