Bir nesne php içeren bir nesne döngü

3 Cevap php

Ben diğer nesneleri içeren bir PHP nesne var

yani

$obj->sec_obj->some_var;

Ben nesne ve tüm nesneler nesneler aracılığıyla döngü bir foreach döngüsü kullanmak istiyorum. Ben maksimum seviye 3 olduğunu düşünüyorum, bu yüzden

$obj->sec_obj->third_obj->fourth_obj

Herhangi bir fikir?

3 Cevap

Bu sadece temel özyineleme var.

function loop($obj)
{
    if (is_object($obj)) {
        foreach ($obj as $x) {
            loop($x);
        }
    } else {
        // do something
    }
}

Edit: Baskı anahtar ve değer çiftleri:

function loop($obj, $key = null)
{
    if (is_object($obj)) {
        foreach ($obj as $x => $value) {
            loop($value, $x);
        }
    } else {
        echo "Key: $key, value: $obj";
    }
}

Bu sayfayı inceleyin: http://www.php.net/manual/en/language.oop5.iterations.php

Sen foreach bir nesnenin kamu üyelerine olsa döngü için kullanabilirsiniz, böylece bir özyinelemeli fonksiyonu ile bunu yapabilir.

Eğer biraz daha süslü olmasını istiyorsanız, bir yineleyici kullanabilirsiniz.

Bir özyinelemeli işlevini kullanın. Geçirilen değeri bir nesne değil aradığınız değeri varsa onu çağıran fonksiyon kendini bulunuyor. Dikkatli olsa sonsuz bir döngü içine almak için değil!

Burada iyi bir yazıdır.

http://devzone.zend.com/article/1235