Я имею дело со странной проблемой в PHP 5.2.6, сериализации объектов.PHP сериализует защищенные переменные класса с неправильным количеством символов?
По-видимому, PHP хранит элементы защищенных переменных со звездочкой впереди своего имени. Это нормально и правильно, однако, рассмотрим следующий пример:
O:18:"object__songChords":1:{s:9:"*chords"}
* аккорды не содержит 9 символов, а 7 (с Астерикса).
Естественно, я предположил, что на моей стороне есть некоторые недоразумения, и что PHP просто подсчитывает кавычки, но когда я сравниваю это с другими сохраненными строками, я считаю, что это не так.
Суть заключается в том, что PHP не может выполнить переориентирование этих объектов, хотя классы не изменились.
Notice: unserialize(): Error at offset 43 of 867 bytes in ...
Может ли кто-нибудь рассказать об этом?
EDIT (обеспечивая класс)
class object__songChords {
protected $chords;
protected $lyrics;
}
Пожалуйста, обратите внимание, что я лишен приведенный выше пример сериализации для простоты - фактическая сериализация строка конечно содержит оба свойства.
может вы предоставляете класс? и данные как пример php-файла? –
Да, я только что редактировал вопрос – SquareCat
Вы уверены, что это полная сериализованная строка? –