在 Java 这种语言里,方法(函数)是没法独立于类存在的,所以所有的方法都必须包含在类中,如果这个方法和具体的实例无关,那么通常就定义为静态方法。如果有一组相关的这样的方法,那么就把它们放到一个类中,这个类只有静态方法。
回到 PHP, 因为历史遗留问题,PHP 的命名空间对函数支持比较差,所以也到了和 Java 差不多的情况。因此,在 PHP 中将与实例无关的函数定义为一个类的静态方法,也是一种比较常见的设计,在 Laravel 中大量被用到
1、与实例逻辑无关,与类逻辑有关,就用静态方法,例如 factory ()
2、基本上可以这么说,用得越多越不面向对象,因为静态类本质上跟纯函数没区别
静态方法的优点是什么?
1、生命周期和程序一样
2、不需要初始化
比如你写了一个耦合很低的函数 Tool,这个时候你可以封装一个建议的静态方法 sendMail。
那么你调用就很方便了:
Tool::sendMail()