文档详情

PHP类中的静态方法使用实例.doc

发布:2017-06-07约3.39千字共4页下载文档
文本预览下载声明
PHP类中的静态方法使用实例   在php中静态方法我们就直接在函数或变量前加一个static就可以了,使用的时候和静态变量差不多,不需要实例化,直接用::调用了,下面我来给大家举几个关于静态方法实例。   PHP也不例外!所谓静态方法(属性)就是以static关键词标注的属性或者方法(例如:静态属性public static username;)   静态方法和非静态方法最大的区别在于他们的生命周期不同,用一个实例来说明   静态方法定义   定义静态方法很简单,在声明关键词function之前加上static,例如:   代码如下复制代码   class A   {   static function fun()   {   // do somathing   }   }   静态方法使用   使用的时候和静态变量差不多,不需要实例化,直接用::调用,例如:   代码如下复制代码   A::fun()   对比普通方法   因为静态方法的调用不需要实例化, 所以在静态方法中引用类自身的属性或者方法的时候会出错,也就是形如self和$this是错误的。   代码如下复制代码   class MyClass   {   public $num = 5;   function __construct()   {   $this-num = 10;   }   function fun_1()   {   echo I am a public method named fun_1.n;   echo The num of object is {$this-num}.n;   }   static function fun_2()   {   echo I am a static method named fun_2.n;   }   function fun_3($n)   {   echo The arg is {$n}n;   }   }   $m = new MyClass;   $m-fun_1();   $m-fun_2();   $m-fun_3(test);   MyClass::fun_1();   MyClass::fun_2();   MyClass::fun_3(test);   输出结果:   lch@localhost:php $ php class_method.php   I am a public method named fun_1.   The num of object is 10.   I am a static method named fun_2.   The arg is test   I am a public method named fun_1.   PHP Fatal error: Using $this when not in object context in /Users/lch/program/php/class_method.php on line 14   再看一实例   用一个实例来说明。   代码如下复制代码   class user{   public static $username; //声明一个静态属性   public $password; //声明一个非静态属性   function __construct($pwd) {   echo ‘Username:’,self::$username; //输出静态属性   self::$username = ‘admin’; //为静态属性赋值   $this-password = $pwd; //为非静态属性赋值   }   public function show(){ //输出类属性   echo ‘   Username:’,self::$username;   echo ‘   Password:’,$this-password;   }   public static function sshow(){   echo ‘   Username:’,self::$username;   echo ‘   Password:’,$this-password;   }   }   user::$username = ‘root’; // 为赋值user类的静态属性赋值   $objUser = new user(’123456′); //实例化user类   $objUser-sshow();   unset($objUser);   echo ‘   Username:’,user::$username;   /*   * 输出结果为:   * User
显示全部
相似文档