今回は、PHPでin_arrayの暗黙的な変換を実装する手順について詳しく説明します。PHPでin_arrayの暗黙的な変換を実装するための注意事項について、実際のケースを見てみましょう。
質問
今日インターフェースを書くときに、多数の基本情報パラメータを渡す必要があります。パラメータには、検証の便宜上、int と string の 2 つのタイプがあります。を配列に格納し、 in_array(0, $param) を使用して int パラメータが 0 であるかどうかを判断し、次に string パラメータが空であるかどうかを個別に判断します。 サンプルコードは次のとおりです。 -test では、正しいパラメーターが渡されると、間違ったパラメーターが返されることがわかりました。 ! !
理由この状況はまさに in_array が問題を引き起こしているために発生します。 in_array(search,array) は配列内の各値を search と比較することと同じです。 $param array には int パラメータもあります。文字列パラメーター。これは、文字列と int の比較に相当します。PHP の暗黙の変換ルール:
非数値String整数と比較すると、文字列は自動的に int(0) に変換されます次の例は、ステートメント:
if(in_array(0, $param) || $param['img'] == '') { $this->errorCode = 10030; $this->errorMessage = '参数不正确'; return false; }Solution
in_array は、
searchのデータが配列の値と同じ型であるかどうかをチェックするための 3 番目のパラメーター true を追加します。そのため、要素が存在する場合にのみ関数を使用できます。配列 True は、データ型が指定された値と同じである場合にのみ返されます上で紹介したビジネスの場合、より厳密にして、int 型データを配列に、文字列を配列に、そして 2 つのデータ型に格納することができます。上記の問題が発生しないように、さまざまな種類の配列を個別に検証します
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語に関する他の関連記事に注目してください。 Webサイト!
推奨読書:
phpでjsonオブジェクトの値を出力する方法とは何ですかAlibaba Cloud Win2016のインストールApacheとPHP環境チュートリアルの詳細な説明加算と減算を生成するPHPの詳細な説明アルゴリズムのステップ以上がPHPにおけるin_array暗黙的変換の実装手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。