温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php静态方法和普通方法的区别有哪些

发布时间:2021-03-12 10:25:49 来源:亿速云 阅读:212 作者:小新 栏目:编程语言

这篇文章主要介绍了php静态方法和普通方法的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

区别:静态方法可以通过“类名::方法名”直接调用;而普通方法需要创建一个实例,也就是new一个对象,然后通过“对象名->方法名”的方式来调用。静态方法只能访问类中的静态成员;普通方法可以访问类中的任何成员。

静态方法
  • 静态的内存空间是固定的,相对来说更省资源。

  • 创实例的创一个实例就要开辟一个新内存,耗费资源 静态方法属于类所有,类实例化前即可使用;

  • 静态方法只能访问类中的静态成员;

  • static内部只能出现static变量和其他static方法!而且static方法中还不能使用this等关键字,因为它是属于整个类;

  • 静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。

普通方法
  • 可以访问类中的任何成员, 因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存;

  • 静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁;

主要区别
  • 静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。

  • 静态方法可以通过 类名::方法名直接调用。普通方法需要创建一个实例,也就是new一个对象,然后通过 对象名->方法名的方式来调用;静态类只能包含静态成员,否则会抛出编译错误;

  • 非静态类既可以包含非静态成员也可以包含静态成员 静态类是不能实例化,之所以不能实例化,是因为静态类会导致C#编译器将该类同时标记为abstract和sealed,并且编译器不会在类型中 生成一个实例的构造函数,从而导致静态类不能实例化;

  • 非静态类可以,并且静态成员的访问只能通过类来进行访问,因为静态成员是属于类的。

感谢你能够认真阅读完这篇文章,希望小编分享的“php静态方法和普通方法的区别有哪些”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI