hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 文章 - 后端开发 - 正文 看Cosplay古风插画小姐姐,合集图集打包下载:炫龙网 · 炫龙图库

【后端开辟】php中static关键字的明白

2019-11-16后端开发ki4网24°c
A+ A-
函数内的static变量

static静态变量的明白

静态变量 范例说明符是static。

静态变量属于静态存储体式格局,其存储空间为内存中的静态数据区(在 静态存储区内分派存储单元),该区域中的数据在全部顺序的运转时期一向占用这些存储空间(在顺序全部运转时期都不开释),也能够认为是其内存地点稳定,直 到全部顺序运转完毕(相反,而auto自动变量,即动态部分变量,属于动态存储种别,占动态存储空间,函数挪用完毕后即开释)。静态变量虽在顺序的全部实行过程当中一直存在,但是在它作用域以外不能运用。

别的,属于静态存储体式格局的量不一定就是静态变量。 比方:外部变量虽属于静态存储体式格局,但不一定是静态变量,必须由 static加以定义后才成为静态外部变量,或称静态全局变量。

一切的全局变量都是静态变量,而部分变量只要定义时加上范例修饰符static,才为部分静态变量。

静态变量能够在任何能够请求的处所请求,一旦请求胜利后,它将不再接收其他的一样请求。

静态变量并非说其就不能转变值,不能转变值的量叫常量。 其具有的值是可变的 ,而且它会坚持最新的值。说其静态,是由于它不会跟着函数的挪用和退出而发生变化。即上次挪用函数的时刻,假如我们给静态变量给予某个值的话,下次函数挪用时,这个值坚持稳定。

函数内静态变量

static usage

1,请看下面这个例子:

function doStuff(&$cache) {
    static $cache = null;
    if ($cache === null) {
        echo $cache = '%heavy database stuff or something%';
    }
}
$cache = 'not null';
doStuff($cache);
// Output
%heavy database stuff or something%

从上面的例子能够看出,static关键字影响了援用通报,纵然我们运用了&来试图转变变量$cache的值和地点,依然不影响doStuff()函数中的if推断;

而且,在doStuff()函数中,静态变量$cache并非不可转变的,$cache从null变成了%heavy database stuff or something%;

类中的静态要领和属性

● 我们把类当做生成对象的模板,把对象作为运动组件,实例化一个类,获得一个对象,然后接见这个对象的要领和属性。

比方 $foo = new Foo(); $foo就是类Foo实例化后的对象。

● 静态要领是以类作为作用域的函数,我们能够不经实例化,直接接见静态要领.

比方:

class Foo()
{
    public static function a(){}
}
// 接见a();
Foo::a();

● 静态要领不能接见这个类中的平常属性和要领,由于那些属性和要领属于一个对象,而静态要领和属性又称为类变量的要领。

● 在当前类(非子类)中接见静态要领或属性运用self::method(),note: self能够挪用父类的静态要领和属性;

耽误静态绑定

先看个例子

header("Content-type: text/html; charset=utf-8");
class A 
{
    public static function aa()
    {
        echo "非耽误静态绑定<br>";
    }
    
    public static function bb()
    {
        echo self::aa();  // Output 非耽误静态绑定
        echo static::aa(); // Output 耽误静态绑定
    }
}
class B extends A
{
    public static function aa()
    {
        echo "耽误静态绑定";
    }
    
    public static function cc()
    {
        echo self::bb();
    }
}
B::bb();
// Output
非耽误静态绑定
耽误静态绑定

运用self关键字,指是当前类(A),因而猎取的也就是类A的aa()要领的返回值;

php5.3以后,我们能够运用static来猎取子类的aa()要领,它指的的被挪用的类。

总结:

static关键字的耽误绑定有许多用处,平常在项目中可边做边总结。

以上就是php中static关键字的明白的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
【后端开辟】php中static关键字的明白

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>