php5.4中static关键字,【后端开辟】php中对static关键字的明白

aa9c5f873f4b6ff7da2b81af499ea7c0.png

php中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%

而且,在doStuff()函数中,静态变量$cache并非不可转变的,$cache从null变成了%heavy database stuff or something%;从上面的例子能够看出,static关键字影响了援用通报,纵然我们运用了&来试图转变变量$cache的值和地点,依然不影响doStuff()函数中的if推断;

类中的静态要领和属性

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

比方 $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 "非耽误静态绑定
";

}

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

非耽误静态绑定

耽误静态绑定

php5.3以后,我们能够运用static来猎取子类的aa()要领,它指的的被挪用的类。运用self关键字,指是当前类(A),因而猎取的也就是类A的aa()要领的返回值;

总结:

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

更多PHP相干学问,请接见ki4网!

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

收藏 | 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值