1

パラメータが存在する場合、クエリ文字列から値を取得する方法を知っています。

$hop = $_GET['hop'];

ただし、クエリ文字列に含まれていない場合は、デフォルト値も設定する必要があります。私はこれを試しましたが、うまくいきませんでした:

$hop = $_GET['hop'];

if ($hop = " ") {
  $hop = 'hardvalue';
};

クエリ文字列に「hop」パラメータがある場合とない場合、および存在するが定義されていない場合の処理​​を手伝ってください。

example.com/?hop=xyz

example.com/

example.com/?hop=

PS自分が何をしているのかわからないので、説明してくれたら、PHPページに追加する正確なコードも含めてください。

4

4 に答える 4

2

使用するarray_key_exists

if (array_key_exists('hop', $_GET))
{
 // the key hop was passed on the query string.
 // NOTE it still can be empty if it was passed as ?hop=&nextParam=1

} 
else
{
 //the key hop was not passed on the query string.
}
于 2011-04-01T19:42:57.647 に答える
2

もう少し考えて、もう少し堅牢にする必要があると判断しました。

$hop = 'hardvalue';
if (array_key_exists('hop', $_GET)) {
    if (!empty($_GET['hop'])) { $hop = $_GET['hop']; }
}
于 2011-04-01T19:43:07.520 に答える
1

あなたはすでに厄介な解決策を手に入れました。URLまたはフォームのパラメーターを操作するときは、空の文字列またはゼロも存在しない値として扱いたいことがよくあります。次に、次の代替構文を使用できます。

$hop = $_GET["hop"]   or   $hop = "hardvalue";

=overの優先順位が高いために機能orし、余分なスペースがあると読みやすくなります。

PHP 5.3以降では、以下を使用することもできます。

$hop = $_GET["hop"]  ?:  "hardvalue";

ここでの利点は、この構文がphp通知を丸呑みにしないことです。これは、デバッグに役立ちます。

于 2011-04-01T20:26:31.780 に答える
1

実は使ってみます

$hop = !empty($_GET['hop']) ? $_GET['hop'] : 'default';

empty()の代わりにを使用するisset()と、パラメーターは存在するが定義されていない3番目のシナリオが処理されます。

また、でをif ($hop = " ")=変更する必要があります===割り当て、==平等をテストします。あなたがそれを持っている方法では、ifステートメントは何$hopが等しくても常に実行されます。

于 2011-04-01T19:56:45.890 に答える