Нам нужно просмотреть историю изменений файла, но некоторые возможности:
- Это остатки предыдущего алгоритма, который постепенно лишался функциональности, но никогда не очищался.
- Это типичный код спагетти, который мы все производим после плохой ночи.
- Это оптимизация, которая ускоряет код для больших входных строк.
Это все синонимы:
<?php
$packed = pack('N*', 100, 200, 300);
// 1
var_dump( unpack('N*', $packed) );
// 2
var_dump( unpack('N*', substr($packed, 0, 4)) );
var_dump( unpack('N*', substr($packed, 4, 4)) );
var_dump( unpack('N*', substr($packed, 8, 4)) );
// 3
var_dump( unpack('N', substr($packed, 0, 4)) );
var_dump( unpack('N', substr($packed, 4, 4)) );
var_dump( unpack('N', substr($packed, 8, 4)) );
?>
Я сделал типичный тест с повторением в тысячу раз с тремя целыми числами, и 1 намного быстрее. Однако аналогичный тест с 10 000 целых чисел показывает, что 1 является самым медленным: -!
0.82868695259094 seconds
0.0046610832214355 seconds
0.0029149055480957 seconds
Будучи полнотекстовым движком, где производительность необходима, я бы осмелился сказать, что это оптимизация.