首页 > 作文

php中static关键字的理解

更新时间:2023-04-07 21:34:43 阅读: 评论:0

函数内的static变量

static静态变量的理解

静态变量 类型说明符是static。

静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执行过程中始终存在,但是在它作用域之外不能使用。

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

所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态高考艺术生变量。

静态变量可以在任何可以申请的地方申请,一旦申请成功后,它将不再接受其他的同样申请。

静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。

函数内静态变量

static usage

1,请看下面这个例子:

古诗改编的歌曲

function dostuff(&$cache) {

static $cache = null;

if ($cache === null) {

echo $cache = '%heavy databa stuff or something%';

}

}

$cache = 'not null';

dostuff($cache);

// output

%heavy databa stuff or something%

而且,在dostuff()函数中,静态变量人体发育学$cache并不是不可改变的,$cache从null变成了%heavy databa stuff or something%;从上面的例子可以看出,static关键字影响了引用传递,即使我们使用了&来试图改变变量$cache的值和地址,仍然不影响dostuff()函数中的if判断;

类中的静态方法和属性

● 我们把类当成生成对象的模板,把对象作为活动组件,实例化一个类,得到一个对象,然后访问这个对象的方法和属性。

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

● 静态方法是以类作为作用域的函数,我们可以不经实例化,直接访问静态方法.

例如:

class foo()

{

public static function a(){}

}

// 访问a();

foo::a();

● 在当前类(非子类)中访问静态方法或属性使用lf::method(),note: lf可以调用父类的静态方法和属性;● 静态方法不能访问这个类中的普通属性和方法,因为那些属性和方法属于一个对象,而静态方法和属性又称为类变量的方法。

延迟静态绑定

先看个例子

header("content-type: text/html; chart=utf-8");

class a

{

public static fu请假条病假nction aa()

{

echo "非延迟静态绑定<br>";

}

public static function bb()

{

echo lf::aa(); // output 非延迟静态绑定

echo static::aa(); // output 延迟静态绑定

}

}

class b extends a

{

public static function aa()

{

echo "延迟静态绑定";

投资名言

}

public static function cc()

{

echo lf::bb();

}

}

b::bb();

// output

非延迟静态绑定

延迟静态绑定

php5.3之后,我们可以使用static来获取子类的aa()方法,它指的的被调用的类。使用lf关键字,指是当前类(a),因此获取的也就是类a的aa()方法的返回值;

总结:

static关键字的延迟绑定有很多用途,一般在项目中可边做边总结。

本文发布于:2023-04-07 21:34:41,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/d5fac3721756e75a8d88f78392698acc.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:php中static关键字的理解.doc

本文 PDF 下载地址:php中static关键字的理解.pdf

标签:静态   变量   方法   绑定
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图