23

null に設定された既存のクエリ文字列パラメーターと、欠落しているパラメーターを区別できるようにしたいと考えています。したがって、質問の部分は次のとおりです。

  • パラメータがクエリ文字列に存在するかどうかを確認する方法
  • クエリ文字列で null 値を渡すための確立された方法は何ですか? (例: param=null または param=(nothing) )

ありがとう

4

4 に答える 4

38

使用isset()してempty()

if (isset($_REQUEST['param']))
{
  // param was set in the query string
   if(empty($_REQUEST['param']))
   {
     // query string had param set to nothing ie ?param=&param2=something
   }
}
于 2010-12-07T23:18:31.947 に答える
13

または使用array_key_exists

if(array_key_exists("myParam", $_GET)) {

}

私は空の値をサーバーに渡すための「規則」に熱心ではありませんでした.たとえば、変数の存在をテストし、それらをトリミングして空であることをテストすることに慣れています.

于 2010-12-07T23:21:43.537 に答える
4

に格納されている値は$_GET$_POST実行時に明示的に設定されていない限り、文字列または配列のみになります。query=string値のクエリ文字列がある場合は"string"、代わりに次を使用query=nullします。値はになります"null"。そのため、文字列であることに注意してください。

を送信query=すると、値は""または空の文字列になります。との違いに注意してください。値がnullでない場合はtrueになりますが、値が。と評価された場合はtrueになります。そのため、との両方に当てはまります。issetemptyissetemptyfalse"" issetempty

クエリ文字列パラメータがの文字列値に設定されているかどうかを確認したいだけの場合は"null"、簡単に確認できます$_GET['query']=='null'(確認する前に文字の大文字と小文字を調整することをお勧めします)。

于 2010-12-07T23:38:58.573 に答える
2

2つではなく1つのifステートメントを使用する場合:

if ((isset($_REQUEST['name'])) && (!empty($_REQUEST['name'])))
{
    $name= $_REQUEST['name'];
}
于 2012-10-04T22:33:31.960 に答える