В чем разница между кодами формата a, A и Z функции упаковки в PHP - PullRequest
0 голосов
/ 07 мая 2020

В чем разница между кодами формата 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, а также @, я буду очень признателен.

...