PHP foreach/in_array
におけるいくつかの珍しい問題 PHP は開発において非常に効率的であり、これは当然のことですが、実行効率が犠牲になります。 php の配列関数は非常に強力ですが、万が一に備えて、さらに検討していくつかの状況を試してみてください。今後さらに発見された場合は、それらを追加します。
foreach は、データまたはオブジェクトの内容を簡単に読み取ることができる配列を走査する簡単な方法を提供しますが、公式ドキュメントには が原因であると記載されていますforeach は内部配列ポインターに依存しているため、ループ内でその値を変更すると予期しない動作が発生する可能性があります。したがって、基本的には、1. ループ内で値を変更しないでください。変更しないと、期待した結果を超えてしまいます。2. '&' は、めったに使用されませんが、使用する場合には安全な方法です。 , 参照が終了したら、すぐに unset 関数を呼び出して変数を破棄する必要があります。そうしないと、この変数が次のコードで再度使用されると、ループの最後の値が変更され、予期しない値が取得されます。リストがループで出力されると、出力の最後の行には多くの乱雑な値または null 値が含まれます。 unset を使用すると、この問題が解決されます。
in_array、その意味は、前の文字列が後の配列に存在するかどうかをチェックすることです。ほとんどの場合、これも同様に機能しますが、後の配列が整数の場合、そのようなarray(0,1,2,3) の場合、PHP は前の文字列を intval するため、値 0 が得られます。その後、偶然配列にこの値がある場合は、式が確立されるまで待ちます。期待を超えていますか?したがって、次のデータが整数であると判断された場合、特に 0 である可能性がある場合 (これによりすべての文字列が置き換えられる可能性があります)、この関数を使用してはなりません。代わりに key_exists を使用できますが、次のデータを使用する必要があります。 array_flip を使用して反転操作を実行します。
値を取得するために文字列を配列として使用するとどうなりますか? PHP は非常にフォールト トレラントな言語であるため、間違いを修正できるように最善を尽くします。そのため、参照添字は 0 に変換されます。その場合、文字列添字は 0 になり、値は You になります。最初の文字列の値を取得します。これは予想を超えていますか?解決策は、添え字 is_array を参照する前に、変数が配列であるかどうかを確認することです。
あれこれ問題に遭遇し、それを言い続けてきた先輩たちがたくさんいるのに、結局のところ私たちは避けられず、失敗し続けているのです。もしかしたらこれが社会なのかもしれない!みんなとても忙しいのに、あなたのくだらないコードを解読する時間がありません! はは