面向对象中静态方法和属性的理解

在PHP面向对象中一般我们都是实例化一个类得到一个对象来访问这个对象的属性和方法,把对象当做是活动的组件,对象的方法可以用来被调用,对象的属性可以被访问,其实面向对象的很大一个特点是操作通过类实例化的对象来完成,毕竟,类仅仅是对象的一个模板而已,但是对于静态方法或者是静态属性而言,我们可以直接通过类来访问他们,只要我们用static关键字声明他们就好了.

**static是php5后引入的,在这之前的版本是不能使用的,


总结如下:

1.静态方法是以类作为作用域的函数,所以静态方法不能访问非静态的属性,因为他们属于对象而不是类,但是可以访问静态属性

2.在类外部可以通过类名::属性名/方法名来实现的,区别于一般的->普通访问方式,

StaticClass::$sataic_name;

StaticClss::Static_Function();

3.在类的内部,可以通过self::属性名/方法名来实现,

calss StaticClass{

    public  static $static_num = 0;

    public  static public function(){

        self::$static_num++';

        print "hello(".self::$static_num.")";

    }

}

所以根据定义,我们也不能在对象中调用静态方法,因此静态方法和属性又被称为类变量和属性,因此不能再静态方法中使用伪变量$this;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,084评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,913评论 1 32
  • 理智上明白要上班才能有收入才能学到更多东西,但是情感上不喜欢工作啊尤其是觉得自己很多技能都不会,超级焦虑,希望过几...
    绯月魔铃阅读 1,558评论 0 0
  • 1 解决了认识自我的难题(2024年的难题),我回到书桌前坐下。肚子又开始"咕噜,咕噜"叫...
    四知录阅读 3,777评论 1 3
  • 今天心血来潮,想牺牲独处时间请同事们吃早饭,却不料被张某人抢了先,真是可恶! 张某人,别看你长得又高又帅又有男人味...
    萧澄阅读 2,338评论 0 0

友情链接更多精彩内容