static 关键字定义静态方法和属性, 也可用于定义静态变量以及后期静态绑定
定义静态变量时
<?php
function Test()
{
$aa= 0;
echo $aa;
$aa++;
}
?>
没有定义为静态变量的话,每次都会输出0.
<?php
function Test()
{
static $aa= 0;
echo $aa;
$aa++;
}
?>
但是定义为静态变量的话,就会将$aa 的上次的值暂存起来,就上面的方法看,每次调用都会比上次加一
ps:记得以前有个小白问我,为什么设置了不生效,然后我去看看他的操作,他一直在刷新,然后问为什么都是0 。。。。这里的多次调用是指在一个进程中,多次调用。重新访问(刷新也是重新访问)后,就肯定再重置。
定义属性,
其实我觉得跟静态变量时一样的。只不过这个变量变为了类的属性,但是有个注意点 静态属性不可以由对象通过 -> 操作符来访问,需要用 :: 来访问
定义静态方法
<?php
class test
{
static function show(){
echo 'hello world';
}
}
//可以直接使用,不需要实例化
test::show();
//输出hello world
?>
若方法设置了static 就可以不用new 这个类也可用这个方法。
后期静态绑定
这个好像好少用。以后有时间补充下