1--TEST-- 2Bug #13 (ensure that __get/__set aren't called when packing/unpacking) 3--SKIPIF-- 4<?php 5if (!extension_loaded("msgpack")) { 6 echo "skip"; 7} 8--FILE-- 9<?php 10 11class magicClass { 12 public function __set($name, $value) { 13 echo 'Called __set' . PHP_EOL; 14 $this->$name = $value; 15 } 16 public function __get($name) { 17 echo 'Called __get' . PHP_EOL; 18 return $this->$name; 19 } 20} 21 22$magicInstance = new \magicClass; 23$magicInstance->val = 5; 24var_dump($magicInstance); 25 26$packed = msgpack_pack($magicInstance); 27var_dump(bin2hex($packed)); 28$unpacked = msgpack_unpack($packed); 29var_dump($unpacked); 30 31?> 32--EXPECTF-- 33Called __set 34object(magicClass)#%d (1) { 35 ["val"]=> 36 int(5) 37} 38string(36) "82c0aa6d61676963436c617373a376616c05" 39object(magicClass)#%d (1) { 40 ["val"]=> 41 int(5) 42} 43