Мне интересно, может ли кто-нибудь, знакомый с AMFPHP или хранилищем данных низкого уровня, объяснить, почему целые числа хранятся в виде двух байтов вместо четырех. Насколько я могу судить, протокол AMF3 требует четырехбайтового целого числа. Конкретный код в сериализаторе следующий:
/**
* writeInt takes an int and writes it as 2 bytes to the output stream
* 0-65535 range
*
* @param int $n An integer to convert to a 2 byte binary string
*/
function writeInt($n) {
$this->outBuffer .= pack("n", $n); // use pack with the n flag
}
Я понимаю, что этот вопрос может быть слишком конкретным, но может ли кто-нибудь помочь ответить на мой вопрос?