nasıl bir dize kullanarak bir nesne (SimpleXML) değişken adı erişmek için?

3 Cevap php

i bir dize kullanarak bir SimpleXML nesneye erişmek gerekir. yani.

$x->a->b = 'obj'; $s = 'a->b'; echo $x->$s;

ama çalışmak için görünmüyor ...

yardım lütfen!

:)

3 Cevap

Eğer başvuruları kullanabilirsiniz:

$s =& $x->a->b;

ya, sen dize yaklaşım istiyorsanız, adım adım referans oluşturmak:

function getRef($base, $str) {
    $out = $base;
    $parts = explode("->", $str);

    foreach ($parts as $p) {
        $out = $out->$p;
    }

    return $out;
}

getRef($x, "a->b");

Hafızam beni yanıltmıyorsa eğer, bu gibi yapabilirsiniz:

echo $x->{$s};

Bu işe yaramaz. XPath kullanmaya çalışıyorsunuz?

http://www.php.net/manual/en/simplexmlelement.xpath.php