public function packInt($num)
{
if ($num >= 0) {
if ($num <= 0x7f) {
return \chr($num);
}
if ($num <= 0xff) {
return "Ì" . \chr($num);
}
if ($num <= 0xffff) {
return "Í" . \chr($num >> 8) . \chr($num);
}
if ($num <= 4294967295.0) {
return \pack('CN', 0xce, $num);
}
return self::packUint64(0xcf, $num);
}
if ($num >= -0x20) {
return \chr(0xe0 | $num);
}
if ($num >= -0x80) {
return "Ð" . \chr($num);
}
if ($num >= -0x8000) {
return "Ñ" . \chr($num >> 8) . \chr($num);
}
if ($num >= -2147483648.0) {
return \pack('CN', 0xd2, $num);
}
return self::packUint64(0xd3, $num);
}