• php单例模式


    【关键字】

    1、final

    ① final修饰的类为最终类,不能被继承!!

    ② final修饰的方法为最终方法,不能够被重写 

    ③ final不能修饰属性!!

     2、static

    ① 可以修饰属性和方法称为静态属性和静态方法,也叫类属性和类方法

     static public $name;

     static function func(){}

    ② 静态属性,静态方法,只能使用类名调用

     Person::#name;Person::func();

    ③ 静态属性和方法,在类第一个装载时声明,会先于对象产生(成员属性和方法在对象实例化时声明)。

    ④ 在静态方法中,不能调用非静态属性和方法;

    在非静态方法中,可以调用静态属性和方法;

     (因为静态属性和方法在类装载时声明,此时还没有对象,更没有成员属性

    ⑤ 在类中,可以使用self关键字代指本类声明

     class public{

     static public $name;

     function say(){

     `echo self::$name;√

     `echo Person::$name;√

     }

     }

     echo Person::$name;

    ⑥ 静态属性是共享的。也就是new很多对象也是共用一个属性。

     3、const

     ① 在类中,声明常量不能使用define()函数,而且必须使用construction关键字!!

     const COUNT = "16亿";

     ② const声明的常量,依然要求必须全部大写,而且不能使用$符号!!!

     ③ 常量一点声明不能改变!!与static相同只能使用类名调用!!!

     echo Person::COUNT;

     4、instanceof 操作符

     检查一个对象是否是一个类的实例!!(包括父类,父类的父类。。。。。)

     var_dump($s instanceof Student);√

      var_dump($s instanceof Person);√

    【小总结】几种常用的操作符

    1、 . 只能连接字符串的作用。 "".""

    2、 => 声明数组时,进行键值关联。 ["key"=>"value"];

    3、 -> 使用对象调用成员属性和方法时  。$zhangsan -> name;  $this->name;

    4、 :: ①使用类名调用静态属性和方法时。 Person::$name;self::$name;

      使用类名调用常量。 Person::COUNT;

     ②使用parent调用父类已有同名方法时。  parent::say();

    [图片]

    [单例模式]

     单例模式也叫单态模式,可以保证一个类只能有一个对象实例

     实现思路:

      ① 构造函数私有化,不允许使用new关键字拿到实例化对象

      ② 所以需要对外提供一个方法,在方法中,判断内存是否已经有这个对象了,如果为空则创建一个新对象返回,如果不为空则直接返回

      ③ 由于类外无法拿到对象,所以要调用方法必须使用类名。n那么方法就必须是静态方法

      ④ 由于方法是静态方法,静态方法中不能使用非静态属性,所以属性必须是静态属性

      ⑤ 全部完成后,在类外面可以直接使用我们提供的静态方法,获得为一对象:

      Person::getSingle();

  • 相关阅读:
    java 缓存框架java caching system使用示例
    2020牛客寒假算法集训营2
    VJ train1 O统计问题 题解
    ACM#学习心得0
    2020牛客寒假集训营1
    高精度加减乘除
    VJ train1 I彼岸
    VC编译常见错误
    EVC开发MapXMobile 环境搭建
    用Evc+Pocket PC 2003 开发MapxMobie
  • 原文地址:https://www.cnblogs.com/junwuyao/p/7864786.html
Copyright © 2020-2023  润新知