質問

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

  • パラメーターのかどうかを確認するにはどうすればよいですか 存在します クエリ文字列で
  • クエリ文字列にヌル値を渡すための確立された方法は何ですか? (たとえばparam = nullまたはparam =(Nothing))

ありがとう

役に立ちましたか?

解決

使用する 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
   }
}

他のヒント

または使用します array_key_exists:

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

}

私は空の値をサーバーに渡すために「コンベンション」に熱心ではありませんでした - 私は変数の存在をテストし、それらをトリミングして空虚をテストすることに慣れています。

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

あなたが送る場合: query=, 、値はなります "" または空の文字列。に注意してください 違い の間に issetempty. isset 値がnullでない場合、 empty 値が評価すると真実になります false. 。そのため "" 真実です 両方とも issetempty.

クエリ文字列パラメーターが文字列値に設定されているかどうかを確認するだけの場合 "null", 、単に確認できます $_GET['query']=='null' (チェック前に文字のケースを調整することができます)

2つではなく1つのifステートメントで:

if ((isset($_REQUEST['name'])) && (!empty($_REQUEST['name'])))
{
    $name= $_REQUEST['name'];
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top