博客列表 >PHP static(静态)关键字

PHP static(静态)关键字

Whitney的博客
Whitney的博客原创
2020年03月13日 14:38:051749浏览

PHP 中除了常规类和方法的使用,访问控制之外,还有静态关键字static,静态变量可以是局部变量也可以是全局变量,当一个程序段执行完毕时,静态变量并没有消失,它依然存在于内存中,下次再定义时还是以前的值,常用于递归或者子函数中保留之前的值,可以用来定义变量和方法。

下面举例说明:

实例

<?php

class Foo
{
    public static $my_static = 'foo';

    public function staticValue() {
        return self::$my_static;
    }
}

class Bar extends Foo
{
    public function fooStatic() {
        return parent::$my_static;
    }
}


print Foo::$my_static . "\n"; //foo

$foo = new Foo();
print $foo->staticValue() . "\n"; // foo
print $foo->my_static . "\n";      // Undefined "Property" my_static

print $foo::$my_static . "\n"; // foo
$classname = 'Foo';
print $classname::$my_static . "\n"; // As of PHP 5.3.0

print Bar::$my_static . "\n"; // foo
$bar = new Bar();
print $bar->fooStatic() . "\n"; // foo 

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:

① 一般静态属性用于保存类的公有数据

② 静态方法内部只能访问静态属性,包括本类和父类的

③ 静态成员不需要实例化对象就能访问

④ 在本类内部访问静态属性用self或static关键字访问,后面要带上‘$’,比如self::$my_static
,parent::$my_static

⑤ 访问父类静态属性使用parent,比如:parent::$my_static

⑥ 在类外部访问静态变量或者方法是使用类名直接访问,无需实例化。比如:Bar::$my_static


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议