注册 登陆

    2019-10-17 01:38:51php static用法详解

    您现在的位置是: 首页 >  php >  php static用法详解

        只要在变量前面加一个static,该变量就变成了静态变量,即改变了它的生存期。

    static 修饰属性:可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象.

    static 修饰方法,可以通过类名访问,如果是修饰的是类的属性,保留值:


    static 修饰变量:


    在每次调用这个函数的时候,函数都会将$a变量置1,再输出,尽管每次输出后,变量$a都加1了,为了每次都能将$a的值保存起来,我们可以将它声明为static:


    static 修饰全局作用域变量: 没有实际意义

    调用:静态方法不需要所在类被实例化就可以直接使用。

    1.由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用
    2.静态属性不可以由对象通过 -> 操作符来访问
    3.调用静态方法 self::static();调用父类静态方法parent::static();
    4.调用静态属性self::$somVar

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

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

    这边做了一个实验:


    这边可以看到静态方法快了一倍,当然写法可以优化:


    这边new一次对象,循环一百万次,静态方法还是快一些。虽然工作中不会调用这么多次,在一些底层,公用的地方,工厂模型管理对象,一些固定的属性都是可以定义静态的,效率比较高。



                需要xmind的小伙伴,可以下方留言 ,事后会发送邮件附件 ^-^。

关键字词: php static用法详解

0




时间:2019-10-17 11:46:32 GZ:
Hello yushui!
时间:2020-06-11 10:07:21 水果:
wo