PHP包中的“机器字节顺序”是什么意思?

iam*_*art 0 php pack

我理解小端和大端,但是“机器字节顺序”是什么意思?

小智 5

pack 中的短语“机器字节顺序”表示字节序由当前机器1确定

PHP 本身不保证这些字符(例如SL)编码数据的字节顺序,除非排序与当前机器有关

因此,使用“机器字节顺序”包字符时要谨慎,如果有任何疑问1,请考虑保证顺序的对应部分(例如nv)。但是,请注意目标数据规范,因为 [Microsoft] UUID 等一些愚蠢的格式是根据“机器字节顺序”排列的,而其他格式总是大端或小端。


1 x86/x64 总是 little-endian,但 PHP 可以在技术上运行在 big-endian 机器上......某处。最好养成明确和精确的习惯,以避免以后代码突然神秘地“停止工作”。