_array_key_exists localhost çalışmama sorunu

Bu fonksiyonu nerden bulduğumu hatırlamıyorum ama array_key_exists fonksiyonunun alt dizilerdede çalışmasına olanak sağlayan bir recursive fonksiyon.

Bir gün ihtiyacım olur diye fonksiyonlarım arasına koymuştum ve ihtiyacım oldu kullandım fakat localhost üzerinde saçma şekilde çalışmadığını fark ettim.

Konuda bahsettiğim fonksiyon bu neden çalışmadığına gelecek olursak return ettiğimiz için foreach döngüsü 1 sefer dönüyor ve devam etmiyor sebep olan şey ne bilmiyorum.

function _array_key_exists($cur_key, $arr){
    foreach ($arr as $key => $val){
        if ($key == $cur_key){
            return true;
        }
        if (is_array($val)){
            return _array_key_exists($cur_key, $val);
        }
    }
    return false;
}

Bende bunun üzerine aynı işlemi yapan farklı bir fonksiyon yazdım oda şu şekilde:

function _array_key_exists($cur_key, $arr){
    static $return = false;
    if (array_key_exists($cur_key,$arr)){
        $return = true;
    }

    foreach ($arr as $value) {
        if (is_array($value)) {
            _array_key_exists($cur_key,$value);
        }

        if ($return == true) {
            break;
        }
    }
    return $return;
}

Farkı ne diye soracak olursanız döngüdeki veriyi return etmek yerine static olarak belirttiğim $return değişkenine değeri atıyorum değer true dönene kadar fonksiyon çalışıyor eğer return değeri true eşitse de döngüyü durduruyor.

localhost üzerinde sorunsuz bir şekilde çalışıyor aynı şekilde hosting üzerinde de çalışıyor. İllaki bu eski fonksiyonu kullanan vardır ve localhost’ta sorun yaşayacaktır onlar için bir çözüm makalesi olsun buda.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir