首页 > 解决方案 > PHP中pack函数的a、a、z格式代码有什么区别

问题描述

PHP中函数的格式代码a, A, 和Z格式代码有什么区别?pack('format', ...$args)

测试

我用以下方式测试了所有三个,它们产生了几乎相同的结果

$s = ' Testing... ';

var_export( pack('a*', $s) === $s ); // true
var_export( pack('A*', $s) === $s ); // true
var_export( pack('Z*', $s) === $s ); // false (because it just adds a "\0" at the end)

// So in case of 'Z*' if I trim the last "\0" it's also the same
var_export( rtrim(pack('Z*', $s), "\0") === $s ); // true

注意:关于Z我现在只知道它在字符串的末尾附加了一个null character"\0",但我仍然想知道它是否在做其他事情。

以上对我来说是最令人困惑的部分,但如果有人描述x, X,@以及,我将非常感激。

标签: phpstring-formattingpack

解决方案


推荐阅读