if query parameter value processing is different when value is empty or null
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C
- Sterne
- 40.4k
- Forks
- 8.1k
- Ø Merge
- 2 T. 13 Std.
- Gemergte PRs (30 T.)
- 96
Beschreibung
Description
The following code:
CASE 1:
<?php
$url = "http://localhost:8964/?soap";
CASE1:
parse_url($url);
echo var_dump(parse_url($url));
$query = parse_str(parse_url($url)["query"], $result);
echo var_dump($result);
$http_query = http_build_query($result);
echo $http_query;
//CASE2 assign query param value to null
$result["soap"]=null;
echo $http_query;
//CASE 3 - replicate same as case 2 but in other form and results are different.
$arr = array('test' => null);
echo http_build_query($arr);
?>
array(5) {
["scheme"]=>
string(4) "http"
["host"]=>
string(9) "localhost"
["port"]=>
int(8964)
["path"]=>
string(1) "/"
["query"]=>
string(4) "soap"
}
array(1) {
["soap"]=>
string(0) ""
}
soap=soap=
But I expected this output instead:
CASE1: soap=
CASE2: soap
CASE3 soap
PS: if query param value is empty string or null , but query param should be in url.
PHP Version
PHP 8.1.2
Operating System
No response
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Reproduziere die drei Fälle mit parse_url(), parse_str() und http_build_query() unter Verwendung der Beispiel-URL und der Arrays. Lies die vorhandenen Tests für diese Funktionen und vergleiche den Umgang mit fehlenden, leeren Zeichenketten und null-Werten. Als erledigt gilt die Aufgabe, wenn die vorgesehene Query-Darstellung durch Tests dokumentiert ist und die beobachteten Ausgaben mit diesem Verhalten übereinstimmen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- php
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100