В чем разница между кодами формата a
, A
и Z
функции pack('format', ...$args)
в PHP?
Test
Я протестировал все три следующим образом, и они дали почти тот же результат :
$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
, а также @
, я буду очень признателен.