次のURLは機能的に同等であると見なされるべきですか?空のURIクエリ文字列パラメータ: "a =&b ="と "a&b"
http://example.com/foo?a=&b=
http://example.com/foo?a&b
は、これはその後、離れて解析し、私が書いたのDrupalモジュールのユーザーはコードが時々クエリ文字列部分が原因根底にあるPHP関数の方法をいくつかに予期しない形で変化させるのURI noticedを書き換えたときにについて来ました行動する。例:
parse_str("a&b", $values); print http_build_query($values);
a=&b=
これは私が心配する必要がありますか?
編集このように、この質問は別のものと似ていると不平を言っています。問題は、 "値がXでない"と "Xの空の値"が同等であると考えるのが安全かどうかです。スタイルは構文的に正しい(これは正しい)。
意見では、はい、これは遅かれ早かれ、デバッグが難しいかもしれない神秘的な方法で、aおよびbのクエリパラメータをどのように使用するかによって、心配する必要があります。それらが空/ヌルになる場合、なぜそれらを最初に生成するのですか?サーバスクリプトがこれらのパラメータの存在をチェックする方がよいかもしれません。 –
私は実際にリンクされているサーバが何をするのかを制御できません。私は基本的には、誰かが私に指し示すことができない、またはそれに失敗していることがわかりませんでした、そこにコード化された標準があることを期待しています。もし私がどちらか見つからなければ、私は車輪を心配し、再発明しなければならないかもしれない。 –
[URLクエリパラメータに値がない場合は有効ですか?](https://stackoverflow.com/questions/4557387/is-a-url-query-parameter-valid-if-it-has-no) -値) –