面向对象编程之static关键字

来源:互联网 发布:p2p线上平台软件 编辑:程序博客网 时间:2024/06/04 19:09
<?php
/*1.static关键字:用来修饰属性和方法,不能修饰类;
  2.使用static修饰成员属性,该属性会存在内存的初始化静态段;
  3.用static的目的是:可以被所有同属于同一个类中的所有对象共用的属性和方法,不用每个对象都重新赋值,浪费内存
  4.第一次用到类名时,类在加载到内存时,就会将静态成员加载到内存的初始化静态段;
  5.静态的成员一定要使用类去访问;
  6.self可以在自己类的方法中代表自己的类名,通过self::静态属性的形式在方法中调用静态属性;类似于$this代表本对象一样;
  7.静态成员一旦被加载,只有在脚本结束时才会被释放;
  8.在静态方法中是不能访问非静态属性的,因为无法识别$this,根本就没创建对象就在访问类中的方法,所以就不存在对象,$this
  也就无从代表;
  9.静态属性不需要使用构造方法来赋值初始化;
  10.只要是能在能使用静态的环境下就尽量使用静态,因为效率高,无须创建对象就可以直接访问;
*/

class person{
        static $name="刘仁";
        static $age=23;
        static $sex="男";
        static $country="中国";
    static function say(){
        echo "我的名字是".self::$name.",我的年纪是:".self::$age.",我的性别为:".self::$sex.",我所在的国家是:".self::$country."<br>";
    }
    function eat(){
        
    }
    function run(){
        
    }
}    
    echo person::$country."<br>";
    person::$country="USA";
    echo person::say();
?>
原创粉丝点击