首页
学习
活动
专区
圈层
工具
发布

PHP中的static

PHP中的static 关于静态变量和方法的问题也是面试中经常会出现的问题,这种问题多看手册搞明白原委就能解决,只是确实关于静态变量的问题还是比较绕的,这里我们就结合手册用实际的代码来看!...现在我们回过头来看最早的例子,普通方法中调用静态方法或变量,实际上就是在这个实例化对象中调用了Test::showV(),只是我们使用了self关键字而已。..."\n"; } } CCC::test(); // AAA、CCC、CCC CCC继承了BBB,BBB继承了AAA 在AAA中的foo()方法使用了static::who()来调用who(...说了这么多,也算是把static静态的特性讲解的差不多了。在实际应用中还是要综合考虑,不能因为静态属性方便就全都使用静态属性和方法或者完全不使用,还是要结合各路业务需求进行取舍。...具体代码: https://github.com/zhangyue0503/php/blob/master/newblog/php-static.php

1.4K30

php static

当static用来修饰局部变量的时候,它就改变了局部变量的存储位置,从原来的栈中存放改为静态存储区。...静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存...,所以非静态成员可以直接访问类中静态的成员 参考: https://www.cnblogs.com/li1056822533/p/6396530.html ——————————— d.php <?...————————— php之static静态变量详解 在看别人项目过程中,看到函数里面很多static修饰的变量,关于static修饰的变量,作用域,用法越看越困惑,所以查了下资料。...php static $name = 1; $name++; echo $name; ?> 另外:考虑到PHP变量作用域 <?

60910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    php中self与static的区别

    php中self与static的区别 通过一些示例,我们可以很容易看出self和static的区别。假定我们有class Car – 它有两个方法,model和getModel。...可以使用关键字static。 static关键字和延迟静态绑定(late static binding) 在PHP5.3中,加入了一个新的特性,叫做延迟静态绑定。它可以帮我们实现多态,解决上面的问题。...在上面的例子中,如果我们使用延迟静态绑定(static),意味当我们调用“Mercedes::model();”时,class Mercedes中的getModel方法将会被调用。...php 5.3以下的版本无法使用延迟静态绑定 注意,php 5.3之前的版本无法使用延迟静态绑定。如果尝试在php 5.3以下的版本运行上面的例子,将会报错。...php中的self和static 现在我们将例子中的self用static替换,可以看到,两者的区别在于:self引用的是当前类(current class)而static允许函数调用在运行时绑定调用类

    79820

    PHP中static与yield关键字的思考

    嗯,扯远了,我今天只想说说:static 与 yield。 先来说说 static 关键字。本篇只讲静态方法的使用与后期绑定的知识点。...static 什么时候用来修饰方法 static 关键字大家都知道是用来修饰方法与属性的。 那么大家在项目中会在哪些场景下使用它?...static 后期静态绑定 这一点php的文档做了详细的介绍,但是我以前一直很少关注这个地方,基本上都是使用 self:: 的方式进行静态方法与属性的调用。...这里贴出 php 文档中的例子来进行一下讲述 PHP 中 yield 的使用场景 说实话,很长一段时间我并不知道 php 还有这么个语法。直到有一天我在 js 中遇到了这个关键字,感觉这么不明觉厉的东西,世界上最好的语言怎么没有?

    67330

    浅谈static a={0};中static的作用

    我们又知道,static int a;表示在全局区为变量a分配内存,同理我们在数组前面加上static之后,系统也为该数组在全局区分配内存,全局区的总内存比较大,一般会满足我们的需求。...如题:当n*m比较大时,这就是为什么static a[n*m]={0};必须带着static的原因了。 静态分配的,有两种情况: 1....、字段、属性、方法 2.标记为static的就不用创建实例对象调用了,可以通过类名直接点出来 3.static三种用法: 4.用于变量前,表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值...(参数,下面同)) { ~~~~(方法内容,下面同) } void s(....) { ~~~~ } } 当你在其他方法里调用这个类中的方法s,则需先声明这个类的变量如:t sd = new t(......(参数,下面同)) { ~~~~(方法内容,下面同) } static void s(....) { ~~~~ } } 7.当你在其他方法里调用这个类中的方法s,则不用先声明这个类的变量如直接调用方法:

    83210

    php面向对象中static静态属性和静态方法的调用

    这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属性和静态方法的调用...具体如下: 这里分析了php面向对象中static静态属性和静态方法的调用。关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了。...静态属性、方法(包括静态与非静态)在内存中,只有一个位置(而非静态属性,有多少实例化对象,就有多少个属性)。 php header("content-type:text/html;charset=utf-8"); class Human{ static public $name = "小妹"; public...php里,一个方法被self:: 后,它就自动转变为静态方法;

    2.6K50

    深入理解PHP中的static和yield关键字

    前言 本文主要给大家介绍了关于PHP中static和yield关键字的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 先来说说 static 关键字。...static 后期静态绑定 这一点php的文档做了详细的介绍,但是我以前一直很少关注这个地方,基本上都是使用 self:: 的方式进行静态方法与属性的调用。...这里贴出 php 文档中的例子来进行一下讲述 php class A { public static function who() { echo __CLASS__; } public static function test() { self::...PHP 中 yield 的使用场景 说实话,很长一段时间我并不知道 php 还有这么个语法。直到有一天我在 js 中遇到了这个关键字,感觉这么不明觉厉的东西,世界上最好的语言怎么没有?

    37910

    Java中的 static

    1 static 静态变量 1.1 静态变量的使用 static变量也称作静态变量,也叫做类变量 静态变量被所有的对象所共享,在内存中只有一个副本 当且仅当在类初次加载时会被初始化 静态变量属于类 通过类名就可以直接调用静态变量...2 静态方法 static修饰的方法,叫静态方法,也叫做类方法 静态方法中,不能直接访问非静态成员变量和非静态成员方法 静态方法中,不能使用 this 关键字 通过类名可以直接调用静态方法 也可以通过对象名...String classRoom; public static void showClassRoom(){ //静态方法中不能使用this关键字 System.out.println...} 3 静态块 3.1 静态块的使用 静态代码块在类加载时执行,并且只执行一次 静态代码块中不能有this关键字 静态块可以有多个,按照顺序执行 public class Emp{ static...public static void main(String[] args) { double random = random(); //Math中的方法 System.out.println

    32030

    解读 PHP 中的 self 与 static :你知道什么区别吗?

    在PHP面向对象编程中,我们经常使用self和static这两个关键字,但很多人对它们的理解停留在表面。特别是当它们分别用于静态调用和对象实例化时,行为差异更是让人困惑。...最近在写一个PHP项目,就此来分享一下self和static的区别。...static:灵活多变的"后期静态绑定" static关键字则采用后期静态绑定(运行时绑定),这是PHP 5.3引入的重要特性。static会在运行时动态绑定到实际调用的类上。...静态调用中的 self 与 static 除了实例化对象,self和static在静态属性和方法调用中也有显著差异: class Base { publicstatic $value = 'Base...重要技术细节 PHP版本要求 static关键字需要PHP 5.3及以上版本支持。如果你的环境是PHP 5.2或更早版本,将无法使用后期静态绑定特性。

    11510

    PHP之static静态变量详解(一)

    例如:外部变量(在PHP中指全局变量)虽属于静态存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。...static $a =2; 所以,静态变量可以在任何可以申请的地方申请,在之后的运行中,始终保持最后一次的赋值 而不是申请成功后,不再接受其他的同样申请 静态变量并不是说其就不能改变值,不能改变值的量叫常量...2、静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。...static静态变量会被放在程序的全局存储区中(即在程序的全局数据区,而不是在堆栈中分配,所以不会导致堆栈溢出),这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。...php //--------------如何理解static静态变量-----------   /** 普通局部变量 */ function local() {     $loc = 0; //这样,如果直接不给初值

    2.8K31

    java中static的用法

    java访问权限控制 文章目录 java中static的用法 static修饰成员变量 类的成员变量 static修饰方法 static修饰代码块 java中static的用法 在java中static...修饰成员变量 成员变量 静态变量,可以直接通过类名去访问 类的成员变量 类的成员变量包括 类变量(静态变量) 被static修饰的变量 在内存中只有一个拷贝 类内部,可以在任何方法内直接访问静态变量...其它类中,可以直接通过类名访问 实例变量 没有被static修饰的变量 没创建一个实例,就为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响 package cn.zhz.Kind.dh...void m3() { //在静态方法中不可以使用this // System.out.println(this.age); // m1();//在静态方法中不可以调用实例方法...//在静态方法中可以直接访问静态变量 System.out.println(email); m4(); } public static void m4(

    73910
    领券