资讯专栏INFORMATION COLUMN

php-static理解

Cc_2011 / 902人阅读

摘要:静态变量属于静态存储方式,其存储空间为内存中的静态数据区在静态存储区内分配存储单元,该区域中的数据在整个程序的运行期间一直占用这些存储空间在程序整个运行期间都不释放,也可以认为是其内存地址不变,直到整个程序运行结束。

如有错误,望您留言指正

一、作用(4种)

定义属性

定义静态方法

定义静态变量

后期静态绑定

二、详细介绍

例:

//Student1属性及方法均设置静态,
//Student2属性及方法不设置静态,
class Student1{
    static $name = "Kangkang";
    static function outPutInfo(){
        echo "age:18;sex:man";
    }
    static function putn
}
class Student2{
    public $name = "Kangkang";
    public function outPutInfo(){
        echo "age:18;sex:man";
    }
}

1、静态属性

- 类未实例化可以直接访问,实例化后**不可**访问
```
echo Student1::$name; //输出  Kangkang
$student = new Student1();
echo $student->name;//Undefined property: Student1::$name
```
- 如果没有访问控制,默认共有(public)
- 只能被初始化为文字或常量,不能使用表达式
```
  class Student1{
        $a = 1;
        static $name = $a;//此处会报错
}
```

2、静态方法

- 类未实例化可以直接访问,实例化后**可以**访问
- 如果没有访问控制,默认共有(public)
- 由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。

3、 静态变量

属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内分配存储单元),该 区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直到整个程序运行结束。
也就是说,除非程序结束,否则一直占着空间。

4、后期静态绑定

- 自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。
说明看不懂,直接举例:

    class A {
        public static function who() {
            echo __CLASS__;
        }
        public static function test() {
            self::who();
        }
    }

class B extends A {
        public static function who() {
            echo __CLASS__;
        }
    }
class C extends A {
    public static function who() {
        echo __CLASS__;
    }
    //重写了test方法
    public static function test() {
        self::who();
    }
}

B::test()."
";//输出A
C::test();//输出C





文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28982.html

相关文章

  • [ 学习路线 ] 学完这些去阿里!GOGOGO

    摘要:以下知识点是前辈师兄总结基础语义化标签引进了一些新的标签,特别注意等,注意的标题结构理解浏览器解析的过程,理解的树形结构,及相应理解标签在各个浏览器上的默认样式代理样式,理解中的重置样式表的概念理解等功能性标签理解标签,理解文件提交过程推荐 以下知识点是前辈师兄总结 1、HTML/HTML5基础: 1.0、语义化H5标签1.1、H5引进了一些新的标签,特别注意article...

    zhaochunqi 评论0 收藏0
  • [ 学习路线 ] 学完这些去阿里!GOGOGO

    摘要:以下知识点是前辈师兄总结基础语义化标签引进了一些新的标签,特别注意等,注意的标题结构理解浏览器解析的过程,理解的树形结构,及相应理解标签在各个浏览器上的默认样式代理样式,理解中的重置样式表的概念理解等功能性标签理解标签,理解文件提交过程推荐 以下知识点是前辈师兄总结 1、HTML/HTML5基础: 1.0、语义化H5标签1.1、H5引进了一些新的标签,特别注意article...

    learn_shifeng 评论0 收藏0
  • 多层级理解闭包

    摘要:第二梯队理解有了第一梯队的认识,我们慢慢修正大脑中对闭包的认识。理解这句话就可以很好的与闭包这两个字关联起来理解闭包这个概念了。总结第二梯队理解闭包是一个有特定功能的函数。第四梯队理解闭包通过访问外部变量,一个闭包可以维持这些变量。 闭包 闭包的概念困惑了我很久,记得当时我面试的时候最后一面有一个问题就是问题关于闭包的问题,然而到现在已经完全不记得当时的题目是啥了,但仍然能够回忆起当时...

    nemo 评论0 收藏0
  • 深度学习解决机器阅读理解任务的研究进展

    摘要:深度学习近年来在中广泛使用,在机器阅读理解领域也是如此,深度学习技术的引入使得机器阅读理解能力在最近一年内有了大幅提高,本文对深度学习在机器阅读理解领域的技术应用及其进展进行了归纳梳理。目前的各种阅读理解任务中完形填空式任务是最常见的类型。 关于阅读理解,相信大家都不陌生,我们接受的传统语文教育中阅读理解是非常常规的考试内容,一般形式就是给你一篇文章,然后针对这些文章提出一些问题,学生回答这...

    flybywind 评论0 收藏0
  • 数据类型和字符集

    摘要:数据怎么会有类型数据难道不就是或者组成的字节码吗没错,在计算机中,只能存储或者,也就是说从存储的角度来看,根本没有类型这种东西,它们确实不过就是或者组成的字节码。数据之所以有类型,那取决于人的看法,而不却决于数据本身,数据本身是没有类型的。 什么是数据类型简单理解就是数据的类型。what?数据怎么会有类型?数据难道不就是0或者1组成的字节码吗?没错,在计算机中,只能存储0或者1,也就是...

    cartoon 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<