> Больше всего смущает разница между LLL($B); и $B->[0]; А что вас удивляет? LLL($B); делает целую кучу движений, а именно: Вызов функции с передачей параметра shift разыменование массива Возврат из функции с передачей параметра $B->[0]; делает только разыменование массива