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、静态方法内部只能访问静态属性,包括本类和父类的

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

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

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

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

具体的要点就这么多了

php中static静态关键字的使用的更多相关文章

  1. Java中static静态关键字的使用

    我们可以基于一个类创建多个对象,每个对象都拥有自己的成员,所有成员变量的值是根据对象而存在的,有些时候我们希望一个类的所有对象共享一个成员,这就用到了static静态关键字 被静态关键字修饰的成员属于 ...

  2. php中static 静态关键字

    一直依赖对于php中static关键字比较模糊,只是在单例模式中用过几次.上网查了查,没有找到很全的介绍,自己总结一下. 根据使用位置分为两部分 1.函数体中的静态变量 2.类中的静态属性和方法 1 ...

  3. php中static静态关键字的使用方法和应用场景

    php中除了常规类和方法的使用,访问控制之外,还有静态关键字static,静态变量可以是局部变量也可以是全局变量,当一个程序段执行完毕时,静态变量并没有消失,它依然存在于内存中,下次在定义时还是以前的 ...

  4. php笔记(二)PHP类和对象之Static静态关键字

      PHP类和对象之Static静态关键字 静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用.静态属性不允许对象使用->操作符调用. class Car { pr ...

  5. php面向对象中static静态属性和静态方法的调用

    这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属性和静态 ...

  6. C#中static静态变量的用法

    使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员static修饰符可用于类.字段.方法.属性.运算符.事件和构造函数,但不能用于索引器.析构函数或类以外的类型 静态全局变量 定义 ...

  7. 关于C#中static静态变量

    C#静态变量使用static 修饰符进行声明,在类被实例化时创建,通过类进行访问不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一C#静 ...

  8. Java static静态关键字 有啥用

    #static有啥用 在Java语言中,static表示“静态”的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块.static的主要作用在于创建独立于具体对象的域变量或者方法. ...

  9. Java之static静态关键字详解|final关键字详解

    前言 在Java语言中,static表示"静态"的意思,使用场景可以用来修饰成员变量和成员方法,当然也可以是静态代码块.static的主要作用在于创建独立于具体对象的域变量或者方法 ...

随机推荐

  1. 什么是POJO?

    本文转载自百度文库,详细出处请参考: http://wenku.baidu.com/view/4a9ad533ee06eff9aef80765.html 我认为写的很准确,很抱歉没有找到作者的名字! ...

  2. ES6(ECMAScript 2015) 编码规范与详细注意要点

    本规范是基于JavaScript规范拟定的,只针对ES6相关内容进行约定 如变量命名,是否加分号等约定的请参考JavaScript规范 应注意目前的代码转换工具(如Babel,Traceur)不够完善 ...

  3. visual studio各个版本的差异

  4. WDCP(WDlinux Control Panel) mysql/add_user.php、mysql/add_db.php Authentication Loss

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 http://www.wooyun.org/bugs/wooyun-2010-06 ...

  5. 使用Java的嵌套循环打印出平行四边形、等腰三角形、棱形、矩形的星星图案(Java工程师面试必备)

    第一遍是看了视频,听老师讲解嵌套循环的使用,然后到星星图形这一步,当时都觉得听明白了,但是自己去做,就是写不出来 第二遍看了赵老师的教程,看了好熟悉的感觉,还是自己写不出来 第三遍找网上关于图形的嵌套 ...

  6. linux 破解版confluence安装

    OS  centos 6.5  需要的安装包如下: jre-7u67-linux-x64.rpm atlassian-confluence-5.4.4-x64.bin mysql-connector- ...

  7. Android应用目录结构分析

    一.手动创建android项目 手动创建一个Android项目,命名为HelloWorld,命令如下: android create project -n HelloWorld -t 1 -p E:/ ...

  8. ActionBar右边菜单按钮的添加

    在res目录下新建文件夹menu,存放men.xml文件 menu.xml <menu xmlns:android="http://schemas.android.com/apk/re ...

  9. linux(Debian)下安装与MySql的安装、卸载、配置及使用

    参考资料:http://www.cnblogs.com/xusir/p/3334217.html 以下是简要记录. 一.安装 安装:apt-get install mysql-server mysql ...

  10. linux安全加固(1)

    Redhat是目前企业中用的最多的一类Linux,而目前针对Redhat攻击的黑客也越来越多了.我们要如何为这类服务器做好安全加固工作呢? 一. 账户安全 1.1 锁定系统中多余的自建帐号 检查方法: ...