Als PHP Entwickler muss man sich ja auch ab und zu mal um den Zusammenbau von URLs kümmern – entweder wird einem diese Arbeit von einem Framework abgenommen, oder man muss manuell ran. Mir geht es hier um den manuellen Weg. Man kann da folgendermaßen rangehen:
$url = "http://host/?id=10";
if($_GET["name"] != "")
{
$url .= '&name='$_GET["name"];
}
if($_GET["country"] != "")
{
$url .= '&country='$_GET["country"];
}
usw.
Wie man sieht, muss man für jeden eventuellen Parameter eigene if-Abfragen bauen, deren Muster ist aber immer das gleiche. Was spricht also dagegen, es folgendermaßen zu lösen?
$url = "http://host/?id=10";
$parameters = array(
array("name"=>"name", "value"=>$_GET["name"]),
array("name"=>"country", "value"=>$_GET["country"])
);
foreach($parameters as $parameter)
{
if($parameter["value"] != "")
{
$url .= '&'.$parameter["name"].'='.$parameter["value"];
}
}
Ok, im ersten Moment ist der neue Code bei gleichem Ergebnis etwas umfangreicher, jedoch ergibt sich ein erheblicher Vorteil, wenn neue Parameter dazu kommen. Denn nun muss man einfach dem $parameters-Array ein neues Element hinzufügen und schon wird dieses mit in die URL eingebaut.