PHP中动态类与静态类的区别:1、使用频繁的是静态类,用的少的是动态类;2、静态类速度快,占内存,动态类速度相对慢些,但调用完后立即释放可以节省内存,根据自身需要选择;3、对比较大内存的服务器来说,设置为静态的话会提高效率,对比较小内存的服务器来说,动态方式会结束掉多余进程,可以回收释放一些内存。
本教程操作系统:Windows10系统、PHP8.1.3版、Dell G3电脑。
PHP中动态类与静态类的区别
静态的方法在整个应用程序其间存储在内存中,速度快,但占用内存。
class A { public static string b() { return "Hello"; } }
用法
A.b(); //调用方便
动态的方法在先声明类实例才能调用类中的方法。
class A { public string b() { return "Hello"; } }
用法
A a = new a(); a.b();
一般使用频繁的方法用静态方法,用的少的方法用动态的。
静态的速度快,占内存。动态的速度相对慢些,但调用完后,立即释放类,可以节省内存,可以根据自己的需要选择是用动态方法还是静态方法。
所以动态方式因为会结束掉多余进程,可以回收释放一些内存,所以推荐在内存较少的服务器上使用。建议根据服务器的负载情况来设置,比较合适的值在5到10之间。
对比较大内存的服务器来说,设置为静态的话会提高效率。因为频繁开关php-fpm进程也会有时滞,所以内存够大的情况下开静态效果会更好。
静态方法主要的问题就是数据同步的问题。如果你的静态方法的类中不保存私有变量那么什么问题都不会有的。最好是包要操作的数据全部以参数的方式传到方法中去。
静态方法是类方法,调用时不需要创建类实例。
动态方法是静态绑定到子类,不是被继承。
静态方法修改的是类的状态,而动态修改的是各个对象的状态,这点也是它们重要的区别
动态类的实例化调用是在类的生命周期中存在,当类没有了以后,对应的实例也就没有了,对应的方法也就没有了,静态类不然,只要你引用了那个静态类的命名空间,他就会一直存在,直到你退出系统。
以上是PHP中动态类与静态类的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!