我有 3 个类,我将它们序列化并保存到数据库中。其中 2 个很好,我能够毫无问题地检索对象并反序列化它们。有问题的类有 9 个属性。我将一个数组传递给类,同时保存:
$customer= new Customer($customerValues);
$serializedCustomer = serialize($customer);
$auftrag = new Auftrag($auftragValues);
$serializedAuftrag = serialize($auftrag);
客户对象看起来像:
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"?:。这可能是个问题吗?或者我在这里做错了什么?
郎朗坤
慕莱坞森