欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【php】关键字 static 的应用

程序员文章站 2022-05-18 20:41:04
...

软件环境

  • php 版本: 5.6.31
  • 操作系统:win7 x64

案例代码

  1. 定义静态变量
$arr = [8, 4, 2, 1];
foreach ($arr as $value) {
	static $res = [];

	$res[] = $value;
}

print_r($res);

运行结果:

E:\www\test>php static.php
Array
(
    [0] => 8
    [1] => 4
    [2] => 2
    [3] => 1
)

该用法常用于递归函数中存储返回值或 cms 框架中缓存请求生成的变量

  1. 后期静态绑定
class ParentClass
{
	function whereAmI()
	{
		return 'I am in ' . static::class . PHP_EOL;
	}
}

class ChildClass extends ParentClass
{

}

$parent_class = new ParentClass();
echo $parent_class->whereAmI();

$child_class = new ChildClass();
echo $child_class->whereAmI();

运行结果:

E:\www\test>php static.php
I am in ParentClass
I am in ChildClass