首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PHPstatic

PHPstatic 关于静态变量和方法的问题也是面试中经常会出现的问题,这种问题多看手册搞明白原委就能解决,只是确实关于静态变量的问题还是比较绕的,这里我们就结合手册用实际的代码来看!...现在我们回过头来看最早的例子,普通方法调用静态方法或变量,实际上就是在这个实例化对象调用了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

1K30

php static

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

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

    phpself与static的区别

    phpself与static的区别 通过一些示例,我们可以很容易看出self和static的区别。假定我们有class Car – 它有两个方法,model和getModel。...可以使用关键字staticstatic关键字和延迟静态绑定(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允许函数调用在运行时绑定调用类

    56820

    PHPstatic与yield关键字的思考

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

    53630

    浅谈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,则不用先声明这个类的变量如直接调用方法:

    64810

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

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

    1.8K50

    深入理解PHPstatic和yield关键字

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

    23510

    Javastatic

    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

    15630

    详解phpstatic方法的原因

    而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件不能使用它。...(3)static函数与普通函数作用域不同,仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件说明和定义。...对于可在当前源文件以外使用的函数,应该在一个头文件说明,要使用这些函数的源文件要包含这个头文件。 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。...php class staticTest { public function test() { $i = 0; $i++; } public static function testStatic()...可见,虽然没有文章说的效率提升那么恐怖,性能的提升方面确实提升了一倍左右。 因此还是建议: 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近1倍。

    1K10

    php面向对象程序设计self与static的区别分析

    本文实例讲述了php面向对象程序设计self与static的区别。分享给大家供大家参考,具体如下: 1、假设我们有个Car类,它有2个方法:model()和getModel()。...因为model()方法只在Car类定义的,所以对self来说当前类就是Car类。self::getModel()就是调用Car类的getModel方法。 这似乎不是我们想要的,如何解决呢?...5、解决方案二:把self关键字换成static class Car{ public function model(){ //这里我们使用了关键字static static::getModel...(); } protected function getModel(){ echo 'I am car'; } } 我们只是将Car类的self替换成了static,并未对Mercedes类作修改...此时我们调用: $mercedes = new Mercedes(); $mercedes- model(); // 输出:I am mercedes 6、小结 在php5.3加入了一个新特性,叫做延迟静态绑定

    40820

    PHPabstract(抽象)、final(最终)和static(静态)原理与用法详解

    本文实例讲述了PHPabstract(抽象)、final(最终)和static(静态)原理与用法。分享给大家供大家参考,具体如下: abstract(抽象) PHP 5 支持抽象类和抽象方法。...为了兼容 PHP 4,如果没有指定访问控制,属性和方法默认为公有。 由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法不可用。 静态属性不可以由对象通过 – 操作符来访问。...自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字 self,parent 或 static。...php class Foo { public static $my_static = 'foo'; public function staticValue() { return self..."\n"; // As of PHP 5.3.0 print Bar::$my_static . "\n"; $bar = new Bar(); print $bar- fooStatic() .

    59720
    领券