Я бы сказал, что главное преимущество - это возможность повторного использования и модульность - что если у вас есть две разные «библиотеки» функций, которые вы создали A
и B
, и у них обоих, как оказалось, bar()
функции? Как статические методы вы можете вызывать A::bar()
и B::bar()
, но как независимые функции у вас могут возникнуть конфликты имен.
Конечно, вы можете обойти это, установив странные префиксы на имена всех ваших независимых функций, чтобы исключить конфликт между именами, но если вы собираетесь это сделать, гораздо проще просто обернуть его в классе и использовать их как статические функции.
В PHP 5.3+ вы также можете использовать пространства имен для достижения этой цели, если хотите.