PHP 警告:unpack():类型 n:输入不足 - 日志条目

PHP Warning: unpack(): Type n: not enough input - log entry

所以我找到了这个错误日志

PHP Warning:  unpack(): Type n: not enough input, need 2, have 0 in {{file}}{{line}}

所述文件和行包含此代码:

$answerHeader    = unpack('ntype/nclass/Nttl/nlength', $answerHeaderBin);

这是在 DNS 上进行查询的代码的一部分。 我的问题是我不知道如何调试它。如果我尝试转储前面提到的 header 信息是正确的。我尝试了不带参数的 unpack() ,它只是 returns false 没有错误。

所以我想,我的问题是:在什么情况下,该警告会出现在错误日志中?

事实证明,当输入数据不正确时会出现警告,特别是如果它希望解包的字符多于提供的数量,在这种情况下 unpack() 函数的计算结果为 false。