php中static静态关键字的使⽤⽅法和应⽤场景
php中除了常规类和⽅法的使⽤,访问控制之外,还有静态关键字static,静态变量可以是局部变量也可以是全局变量,当⼀个程序段执⾏完毕时,静态变量并没有消失,它依然存在于内存中,下次在定义时还是以前的值,常⽤于递归或⼦函数中保留之前的值,可以⽤来定义变量和⽅法,下⾯简单的代码:
1 class Human{
2 public $name;
3 protected $height;
static修饰的变量4
5 public static $sValue="Static Value in Human";
6 public function eat($food){
7 echo $this->name . "'s eating ". $food. "\n";
8 }
9 }
10
11 class Me extends Human
12 {
13 public $team="lsl";
14 private $age="23";
15
16 public static $president="zzy";
17
18 public static function changePresident($newPrsdt){
19 static::$president = $newPrsdt;
20 echo parent::$sValue . "<br />";
21 }
22
23 //静态变量和⽅法操作
24 private static $a="abc";
25
26 public static function abc(){
27 echo "<br />".self::$a;
28 self::$a.="def";
29 }
30 }
31
32 echo Me::$president. "\n";
33 Me::changePresident("web");
34 echo Me::$president. "<br />";
35
36
37
38 Me::abc();
39 Me::abc();
⾸先定义了⼀个⼈类Human,然后定义⼀个类Me继承了Human,则Human⾥⾯的成员都可以通过Me的对象来使⽤了,并且整个使⽤过程中成员变量的值都是有效的,根据代码可以看到:静态变量的值改变之后下次再调⽤就是改变之后的了,如果是普通变量则⽆法实现,只能是通过对象改变才有效,
⽽通过类内部的⽅法是⽆法改变的,通过最后两⾏代码更容易看出,调⽤了2次⽅法abc后静态变量$a的值就发⽣改变了,静态变量⾃⼰想⼀下就可以理解了,⽤途也很⼴泛,下⾯总结⼏点静态关键字相关的规则:
1、⼀般静态属性⽤于保存类的公有数据
2、静态⽅法内部只能访问静态属性,包括本类和⽗类的
3、静态成员不需要实例化对象就可以访问
4、在本类内部访问静态属性⽤self或static关键字访问,后⾯带上的变量要包括$,⽐如: self::$a或者static::$a
5、访问⽗类静态属性使⽤parent,如:parent::$name
6、在类外部访问静态变量或者⽅法时使⽤类名直接访问,⽆需实例化。如:Me::$pan和Me::abc()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论