PHP 静态变量和静态方法

xiaoxiao2021-02-28  93

PHP静态变量 静态变量(也叫类变量) 静态的变量的基本用法 1.在类中定义静态变量形式: [访问修饰符] static $变量名; 例;  //public static $nums=0; 2.如何访问静态变量 如果在类中访问  有两种方法    self::$静态变量名  ,  类名::$静态变量名 如果在类外访问: 有一种方法    类名::$静态变量名 例程: 提出一个问题: 说,有一群小孩在玩堆雪人,不时有新的小孩加入, 请问如何知道现在共有多少人在玩?请使用面向 对象的思想,编写程序解决

[php]  view plain  copy <?php   class Child   {       public $name;       //这里定义并初始化一个静态变量 $nums       public static $nums=0;       public static $i=1;       //构造函数       function __construct($name)       {                                 $this->name=$name;       }        //静态方法       public  function join_game()       {           //self::$nums 使用静态变量           //self::$nums+=1;  或           Child::$nums+=1;           echo Child::$i.".".$this->name."加入堆雪人游戏!<br>";           Child::$i++;       }   }   //创建三个小孩   $child1=new Child("李逵");   $child1->join_game();   $child2=new Child("张飞");   $child2->join_game();   $child3=new Child("唐僧");   $child3->join_game();   $child4=new Child("八戒");   $child4->join_game();   //看看有多少人参加了游戏   echo "<br/> 共有--".child::$nums."--个人参加了游戏!";   ?>  

静态方法(又叫类方法) 其形式如下: [访问修饰符] static  function 方法名(){} 例;  //public static function enter_school($ifree){} 需求: 当我们操作静态变量的时候,我们可以考虑使用静态方法,比如统计所有学生交的学费

在我们编程中,我们往往使用静态方法去操作静态变量.

使用静态方法不需要创建对象,可以直接访问该静态方法

2.如何访问静态方法: 如果在类中访问  有两种方法    self::静态方法名  ,  类名::静态方法名 如果在类外访问: 有两种方法    类名::静态方法名  ,  对象名->类方法名 静态方法的特点 1.静态方法只能操作静态变量 2.静态方法不能操作非静态变量. 这里请注意 : 普通的成员方法,既可以操作非静态变量,也可以操作静态变量 */

[php]  view plain  copy <?php   class student   {       public $name;       //这里定义并初始化一个静态变量 $nums       public static $free=0;       //public static $i=1;       //构造函数       function __construct($name,$ifree)       {                                 $this->name=$name;           echo "<br>";           echo $this->name."入学了,要交学费:".$ifree."元<br>";       }        //静态方法,新生入学,上交学费       public static function enter_school($ifree)       {           self::$free+=$ifree;           }       //获取学费       public static function getfree()       {           return  self::$free;       }      }   //静态方法不需要像普通成员方法一样要创建对象才可调用,可在不创建对象的情况下调用静态方法   //student::enter_school(10000);   //创建学生对象   $student1=new student("小明",1000);   //通过对象名调用静态方法   $student1->enter_school(1000);   //通过类名来调用静态方法   //student::enter_school(1000);   $student2=new student("小东",200);   $student2->enter_school(2000);   $student3=new student("小亮",3000);   $student3->enter_school(3000);      echo "共收取学费".$student3->getfree()."元!<br>";   //echo "共收取学费".student::getfree()."元!<br>";   ?>  
转载请注明原文地址: https://www.6miu.com/read-69398.html

最新回复(0)