Рассмотрим простой класс:Сериализация простой класс PHP для ассоциативного массива
class Token{
private $hash = "";
private $userId = "";
public function __construct($hash, $userId) {
$this->hash = $hash;
$this->userId = $userId;
}
public function getHash() {
return $this->hash;
}
public function getUserId() {
return $this->userId;
}
public function setHash($hash) {
$this->hash = $hash;
}
public function setUserId($userId) {
$this->userId = $userId;
}
}
Попытка сериализовать его в ассоциативный массив, например, так:
// the token
$t = new Token("sampleHash", "sampleUser");
// an array for comparison
$retObj = array();
$retObj['hash'] = $t->getHash();
$retObj['userId'] = $t->getUserId();
print_r((array) $t);
echo "<br>";
print_r($retObj);
Я получаю это:
Array ([�Token�hash] => sampleHash [�Token�userId] => sampleUser)
Array ([hash] => sampleHash [userId] => sampleUser)
Что происходит? Как исправить сериализацию, чтобы она выглядела как вторая строка печати?
Ответ, вероятно, в ваших геттерах ... можете ли вы их скопировать или вставить? – Nicolas 2010-12-01 16:41:45