Удалить SimpleXMLElement?

Я нашел (здесь) ответ относительно способа удаления узла объекта SimpleXMLElement.

Проблема в том, что я не могу понять, как это происходит.

Я имею в виду, что $ image var - ссылка, верно? Итак, что и где это $image[0][0]?


person Michael    schedule 02.02.2013    source источник


Ответы (2)


SimpleXMLElement представляет интерфейс, подобный массиву, на своих дочерних узлах с помощью магических методов. Такое поведение происходит из-за пользовательского __unset поведения, которое заставляет SimpleXMLElement действовать так, как если бы «член» (дочерний элемент) его «массива» (набор дочерних элементов) был удален.

person Francis Avila    schedule 02.02.2013
comment
Есть ли место, где я могу увидеть эти детали реализации SimpleXMLElement? - person Michael; 03.02.2013
comment
Я должен был предположить, что есть что-то, связанное с __unset (), в то время как оно срабатывает при попытке отключить элементы, которые не были установлены для этого объекта .. - person Michael; 03.02.2013
comment
Вы можете прочитать исходный код C SimpleXMLElement на github PHP. репозиторий. - person Francis Avila; 03.02.2013

Если вы поместите print_r ($ image) сразу после $ image = $ galleries-> xpath (...

вот увидишь:

Array
(
    [0] => SimpleXMLElement Object
        (
            [@attributes] => Array
                (
                    [name] => Hansio
                )

        )

)
person Jimzie    schedule 02.02.2013