機能に問題があり__sleep()
ます。
これは私が使用しているコードです。__sleep()
クラスから関数を削除すると、すべてが期待どおりに機能します。
class Test {
private $name;
function setName($value){
$this->name = $value;
}
function getName(){
return $this->name;
}
/* Works good without this function */
public function __sleep() {
echo 'Sleep';
}
}
$obj = new Test;
$obj->setName('Juris');
apc_store('test', $obj);
$objAPC = apc_fetch('test');
// Output = Juris
echo $obj->getName();
// No output and "Call to a member function getName() on a non-object" if __sleep() function is in class. Otherwise output = Juris
echo $objAPC->getName();
このコードが機能しないのはなぜですか?APCとの使用に制限はあり__sleep()
ますか?
PHPバージョン:5.3.14
APCバージョン:3.1.10
回答からの更新:
これは、機能をこれに変更__sleep()
すると機能します
public function __sleep() {
return array('name');
}