しばらく前にインタビューの質問がありhttp_build_query
、Webリクエストのパラメーターとしてエンコードするキーと値のハッシュを受け入れる独自のバージョンのPHPの関数を作成するように求められました。(元の関数もオブジェクトを受け入れますが、インタビューの目的では、ハッシュを受け入れるだけで済みました。)
ネストされたハッシュを無限に処理できる再帰関数を作成しましたが、いくつかのエッジケースが欠落していると言われました。私が理解したそのようなエッジケースの1つは、特殊文字のエンコードでしたが、結局、すべてのエッジケースを取得できず、インタビュアーは私が何が欠けているのかを教えてくれませんでした。
私の質問はこれです:HTTPパラメータをエンコードするときに注意しなければならないエッジケースは何ですか?(私は多くの言語/フレームワークがあなたのためにこれを行う何かを持っていることをよく知っていますが、それは私が求めているものではありません。)