Я попытался не сериализировать Объект 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));
}
SimpleXMLElement обёртывает тип ресурса libxml. Ресурсы не могут быть сериализованы. При следующем обращении ресурс, представляющий объект libxml Node, не существует, поэтому сериализация невозможна. Это может быть ошибкой, что вам вообще разрешено сериализовать SimpleXMLElement.
Ваше решение является правильным, так как text/xml является правильным форматом сериализации для всего XML. Однако, поскольку это всего лишь строка, на самом деле нет никаких причин для сериализации самой XML-строки.
Обратите внимание, что это не имеет никакого отношения к "встроенным" PHP-классам/объектам, а является реализацией SimpleXML (и я думаю, что DOM в PHP 5).
.