PHP静态变量
静态变量(也叫类变量)
静态的变量的基本用法
1.在类中定义静态变量形式:
[访问修饰符] static $变量名;
例; //public static $nums=0;
2.如何访问静态变量
如果在类中访问 有两种方法 self::$静态变量名 , 类名::$静态变量名
如果在类外访问: 有一种方法 类名::$静态变量名
例程:
提出一个问题:
说,有一群小孩在玩堆雪人,不时有新的小孩加入,
请问如何知道现在共有多少人在玩?请使用面向
对象的思想,编写程序解决
- <?php
- class Child
- {
- public $name;
-
- public static $nums=0;
- public static $i=1;
-
- function __construct($name)
- {
- $this->name=$name;
- }
-
- public function join_game()
- {
-
-
- 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
- class student
- {
- public $name;
-
- public static $free=0;
-
-
- 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;
- }
- }
-
-
-
- $student1=new student("小明",1000);
-
- $student1->enter_school(1000);
-
-
- $student2=new student("小东",200);
- $student2->enter_school(2000);
- $student3=new student("小亮",3000);
- $student3->enter_school(3000);
-
- echo "共收取学费".$student3->getfree()."元!<br>";
-
- ?>