Почему не возможно сериализировать встроенные объекты PHP?

Я попытался не сериализировать Объект PHP.

Предупреждение: не сериализируйте () [function.unserialize]: Узел больше не существует в/var/www/app.php на строке 42

Но почему это было, происходят?

Даже если я нашел решение не сериализировать объекты simplexml, его польза для знания, почему php наклон не сериализирует объекты?

Для сериализации simplexml возражают, что я использую эту функцию

function serializeSimpleXML(SimpleXMLElement $xmlObj) 
{

        return serialize($xmlObj->asXML());

}

Для несериализации simplexml objetc, я использую эту функцию

function unserializeSimpleXML($str) 
{

        return simplexml_load_string(unserialize($str));

}
5
задан hakre 1 July 2012 в 14:42
поделиться

1 ответ

SimpleXMLElement обёртывает тип ресурса libxml. Ресурсы не могут быть сериализованы. При следующем обращении ресурс, представляющий объект libxml Node, не существует, поэтому сериализация невозможна. Это может быть ошибкой, что вам вообще разрешено сериализовать SimpleXMLElement.

Ваше решение является правильным, так как text/xml является правильным форматом сериализации для всего XML. Однако, поскольку это всего лишь строка, на самом деле нет никаких причин для сериализации самой XML-строки.

Обратите внимание, что это не имеет никакого отношения к "встроенным" PHP-классам/объектам, а является реализацией SimpleXML (и я думаю, что DOM в PHP 5).

.
12
ответ дан 18 December 2019 в 13:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: