URI Üzerindeki GET Sorgu Dizesi Parametrelerini İşlemek

<?php
class adres {
	var $adres;
	var $site;
	var $deger;
	var $gecici;
	function adres($def="") {
		$this->adres = $def;
		preg_match('/^(.*\?)(.*)$/', $this->adres, $sonuc);
		$this->site = $sonuc[1];
		unset($this->deger);
		$sekme = (explode("&", $sonuc[2]));
		foreach($sekme as $s) {
			$gecici = explode("=", $s);
			$this->deger[$gecici[0]] = $gecici[1];
		}
	}
	function degerEkle($veri, $sal) {
		$this->deger[$veri] = $sal;
	}
	function degerKaldir($veri) {
		unset($this->deger[$veri]);
	}
	function degerGoster($veri) {
		return $this->deger[$veri];
	}
	function yeniAdres() {
		foreach($this->deger as $k=>$s) {
			$this->gecici[] .= $k."=".htmlentities(urlencode($s));
		}
		return $this->site.implode("&",$this->gecici);
	}
}
$x = new adres("http://localhost/index.php?veri1=01&veri2=02");
echo $x->degerGoster("veri1");
echo $x->degerEkle("veri3", "03");
echo $x->degerKaldir("veri2");
echo "<br>";
echo $x->yeniAdres();
?>

Çıktısı

01
http://localhost/index.php?veri1=01&veri3=03

 

__call Fonksiyonu ile Olmayan Fonksiyonu ve Parametrelerini Almak

<?php
class Sinifim{
  public function deneme(){
    echo "deneme fonksiyonu çağırıldı<br>";
  }
  public function __call($fonksiyonAdi, $parametreler = null){
		echo "" . $fonksiyonAdi ." fonksiyonu " . count($parametreler) . " parametre ile çağırıldı!<br>";
		echo "Bu parametreler ";
		foreach($parametreler as $p){
			echo $p." ";
		}
		echo "dir";
  }
}
$obj = new Sinifim;
$obj->deneme();
$obj->benyokum('veri1','veri2');
?>

Çıktısı

deneme fonksiyonu çağırıldı
benyokum fonksiyonu 2 parametre ile çağırıldı!
Bu parametreler veri1 veri2 dir