private static function decode_data(&$data)
{
switch (self::char($data)) {
case 'i':
$data = substr($data, 1);
return self::decode_integer($data);
case 'l':
$data = substr($data, 1);
return self::decode_list($data);
case 'd':
$data = substr($data, 1);
return self::decode_dictionary($data);
default:
return self::decode_string($data);
}
}