static关键字在PHP中的使用详解

韦小宝
发布: 2018-03-06 11:43:50
原创
1911人浏览过

php的一个类中,带有static关键字的方法和属性被称为静态方法和静态属性,这样的方法和属性可以通过类直接访问,而不需要通过类对应的实例来进行访问,本篇文章就讲述了static关键字在php中是如何使用的,还没懂static关键字的同学可以一起看看哦!

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

class Human{
     public $name;
     protected $height;
 
     public static $sValue="Static Value in Human";
     public function eat($food){
         echo $this->name . "'s eating ". $food. "\n";
     }
}
 class Me extends Human
 {
     public $team="lsl";
     private $age="23";
 
     public static $president="zzy";
 
     public static function changePresident($newPrsdt){
         static::$president = $newPrsdt;
         echo parent::$sValue . "<br />";
     }
     //静态变量和方法操作
     private static $a="abc";
     public static function abc(){
         echo "<br />".self::$a;
         self::$a.="def";
    }
}
echo Me::$president. "\n";
Me::changePresident("web");
echo Me::$president. "<br />"; 
Me::abc();
Me::abc();
登录后复制

首先定义了一个人类Human,然后定义一个类Me继承了Human,则Human里面的成员都可以通过Me的对象来使用了,并且整个使用过程中成员变量的值都是有效的,根据代码可以看到:静态变量的值改变之后下次再调用就是改变之后的了,如果是普通变量则无法实现,只能是通过对象改变才有效,而通过类内部的方法是无法改变的,通过最后两行代码更容易看出,调用了2次方法abc后静态变量$a的值就发生改变了,静态变量自己想一下就可以理解了,用途也很广泛,下面总结几点静态关键字相关的规则:

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

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

立即学习PHP免费学习笔记(深入)”;

3、静态成员不需要实例化对象就可以访问

4、在本类内部访问静态属性用self或static关键字访问,后面带上的变量要包括$,比如: self::$a或者static::$a

一键抠图
一键抠图

在线一键抠图换背景

一键抠图 30
查看详情 一键抠图

5、访问父类静态属性使用parent,如:parent::$name

6、在类外部访问静态变量或者方法时使用类名直接访问,无需实例化。如:Me::$pan和Me::abc()

具体的要点就这么多了

没懂static:

static静态变量和普通变量的区别分析

以上就是static关键字在PHP中的使用详解的详细内容,更多请关注php中文网其它相关文章!

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号