quna95, попробуйте профилировщик, там будет наглядно видно и что дергается, и сколько ресурсов жрёт, иконада код работает, а профилировщик покажет, вот это вызывается 5 раз, и сразу можно сделать оптимизации
Если код дергается из разных мест, то это не очень хороший код. Если конечно не рассматривать какой либо фреймворк. А так, библиотека должна быть самодостаточной
Mercury Effirium, вам уже ответили, для контроля типов, проще читать код, так как уж ене требуются пояснения об аргументах и возвращаемых значениях, при передачи не верных типов с включенным строгим контролем будет сыпать ошибки, например у вас с фронта должно приходить число, а приходит строка, то есть вместо 1 приходит "1", это в коде помогает не городить кучу проверок типов и преобразований типа intval($x) или (int) $x