Как получить значение из неполного объекта класса в PHP?

0

У меня есть сериализованный объект PHP, который выглядит следующим, когда я его неэриализую:

__PHP_Incomplete_Class Object
(
    [__PHP_Incomplete_Class_Name] => model_Baubeschreibung
    [prototype:persistence_Table:private] => Array
        (
            [model_Baubeschreibung] => Array
                (
                    [table] => rp_baubeschreibung
                    // ... some more stuff here
                )
        )
    [table:persistence_Table:private] => rp_baubeschreibung
    [id:persistence_Table:private] => 170
    [properties:persistence_Table:private] => Array
        (
            [name] => MY NAME
            [description] => MY DESCRIPTION
            [category] => MY CATEGORY
        )

    [references:persistence_Table:private] => Array
        (
            // Some more stuff here
        )
    [objects:persistence_Table:private] => Array
        (
        )
    [callback:persistence_Table:private] => Array
        (
        )
    [state:persistence_Table:private] => 2
);

У меня нет возможности загрузить класс, к которому относится этот объект.

Есть ли способ получить значения " MY NAME ", " MY DESCRIPTION ", " MY CATEGORY " и идентификатор (здесь: 170) от объекта? В лучшем случае без preg_match. Я пробовал перебирать объект, но это не сработало.

Теги:
class
object

2 ответа

1

Перед деаэрилизацией объекта необходимо включить определение класса. Используйте правильный автозагрузчик или просто включите класс.

Когда вы это сделаете. Он будет правильно отброшен к объекту вашего класса.

  • 0
    Ну, вот в чем проблема, у меня нет определения класса, у меня есть только эта сериализованная строка с объектом
  • 1
    Вы можете привести его к stdClass или использовать get_object_vars()
Показать ещё 1 комментарий
0

Вставить как массив и свойства чтения:

$unserializedObject = unserialize($string);
$array = (array)$unserializedObject;
var_dump($array["\0persistence_Table\0properties"]);
              // ^                  ^
              // these null bytes are required!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню