php foreach/in_array での珍しい問題
Jul 29, 2016 am 09:12 AMPHP は開発効率が高いのは理解できますが、実行効率が犠牲になります。 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 を参照する前に、変数が配列であるかどうかを確認することです。
あれこれ問題に遭遇し、それについて話し続けてきた先輩はたくさんいますが、それでも結局は間違いを避けることはできません。もしかしたらこれが社会なのかもしれない!みんなとても忙しいのに、あなたのくだらないコードを解読する時間がありません! 笑
上記では、PHP の foreach/in_array における珍しい問題をいくつか紹介しており、関連コンテンツも含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
