У меня есть 3 класса, которые я сериализую и сохраняю в базу данных. 2 из них отлично работают, я могу получить объект и десериализовать их без проблем. Данный класс имеет 9 свойств. Я передаю массив в класс, сохраняя:
$customer= new Customer($customerValues);
$serializedCustomer = serialize($customer);
$auftrag = new Auftrag($auftragValues);
$serializedAuftrag = serialize($auftrag);
объект Customer выглядит следующим образом:
O:5:"Customer"?:{s:9:"*anrede";s:4:"Herr";s:7:"*name";s:11:"ABC";s:8:"*firma";s:11:"test";s:10:"*strasse";s:16:"teststr. 33";s:6:"*plz";s:5:"1234";s:8:"*stadt";s:12:"testcity";s:8:"*mobil";s:12:"0123456789";s:10:"*telefon";s:12:"0123456789";s:8:"*email";s:18:"test@mail.com";}
и объект Auftrag:
O:7:"Auftrag":37:{s:14:"*auftrag_typ";s:7:"Angebot";s:9:"*breite";s:3:"2.5";s:8:"*tiefe";s:3:"4.5";s:8:"*hoehe";s:4:"1.00".....
У меня есть следующая функция в обоих классах:
public function getProperties() {
$properties = get_object_vars($this);
return $properties;
}
, и я получаю данные из базы данных и десериализую их:
require_once($_SERVER['DOCUMENT_ROOT'] . '/php/Customer.php');
require_once($_SERVER['DOCUMENT_ROOT'] . '/php/Auftrag.php');
$res = $dbc->fetchAllResults(PDO::FETCH_ASSOC);
$custArr = unserialize($res[0]['customer']);
$auftragArr = unserialize($res[0]['auftrag']);
$customer= $custArr->getProperties();
$auftrag = $auftragArr->getProperties();
Когда я печатаю: print("<pre>".print_r($customer,true)."</pre>");
я получаю ошибку : Fatal error: Uncaught Error: Call to a member function getProperties() on boolean in
, но он работает совершенно нормально (я получаю массив), когда я печатаю: print("<pre>".$auftrag,true)."</pre>");
При использовании: print("<pre>".$res[0]['customer'],true)."</pre>");
я получаю объект, как указано выше.
Эти два объекта находятся рядом идентичным, за исключением свойств. Я заметил, что есть "?" у клиента "Customer"?:
. Может ли это быть проблемой? Или что я тут не так делаю?