<?php class genisletilmisDiziNesnesi extends ArrayObject { private $dizi; public function __construct(){ if (is_array(func_get_arg(0))) $this->dizi = func_get_arg(0); else $this->dizi = func_get_args(); parent::__construct($this->dizi); } public function each($callback){ $yineleyici = $this->getIterator(); while($yineleyici->valid()) { $callback($yineleyici->current()); $yineleyici->next(); } } public function haric(){ $args = func_get_args(); return array_values(array_diff($this->dizi,$args)); } public function ilk(){ return $this->dizi[0]; } public function sira($deger){ return array_search($deger,$this->dizi); } public function denetle(){ echo print_r($this->dizi, true); } public function son(){ return $this->dizi[count($this->dizi)-1]; } public function terscevir($uygula=false){ if(!$uygula){ return array_reverse($this->dizi); }else{ $dizi = array_reverse($this->dizi); $this->dizi = $dizi; parent::__construct($this->dizi); return $this->dizi; } } public function shift(){ $eleman = array_shift($this->dizi); parent::__construct($this->dizi); return $eleman; } public function pop(){ $eleman = array_pop($this->dizi); parent::__construct($this->dizi); return $eleman; } } function yazdir($deger){ echo $deger; } $dizi = new genisletilmisDiziNesnesi([1,2,3,4,5,6]); $dizi->each("yazdir"); echo "<br>"; print_r($dizi->haric(2,3,4)); $dizi->denetle(); echo $dizi->sira(5); echo "<br>"; print_r($dizi->terscevir()); print_r($dizi->terscevir(true)); echo $dizi->shift(); echo "<br>"; echo $dizi->pop(); echo "<br>"; echo $dizi->son(); echo "<br>"; echo $dizi->ilk(); ?>
Çıktısı
123456 Array ( [0] => 1 [1] => 5 [2] => 6 ) Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 ) 4 Array ( [0] => 6 [1] => 5 [2] => 4 [3] => 3 [4] => 2 [5] => 1 ) Array ( [0] => 6 [1] => 5 [2] => 4 [3] => 3 [4] => 2 [5] => 1 ) 6 1 2 5