面向对象的静态属性
Posted rickyctbur
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的静态属性相关的知识,希望对你有一定的参考价值。
基本概念:
静态属性是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量。
定义静态属性
(1) 访问修饰符 static 静态属性名;
(2) static 访问修饰符 静态属性名;
:: 叫 范围解析符
在类的内部访问可以使用两种方式 self::$静态属性名 , 类名::$静态属性名
在类的外部访问静态属性,静态属性需要是public ,否则也不能直接访问, 访问的形式是 类名::$属性名
快速入门案例:
/* 创建一个类:唐僧队伍 类中包含了姓名、年龄、个人每天消耗的食物数量 队伍不断的有成员加入 唐僧、孙悟空、猪八戒、沙僧 $num表示队伍的人数 $food_sum表示队伍每天消耗的蛋糕数量 */ class Person public $name; public $age; public $food_num; //创建静态属性 public static $num = 0; public static $food_sum = 0; public function __construct($name,$age,$food_num) $this -> name = $name; $this -> age = $age; $this -> food_num = $food_num; public function num() //内部访问静态属性 self :: $num++; self :: $food_sum += $this -> food_num; $p1 = new Person(‘唐僧‘,24,3); $p1 -> num(); $p2 = new Person(‘孙悟空‘,720,5); $p2 -> num(); $p3 = new Person(‘猪八戒‘,360,9); $p3 -> num(); $p4 = new Person(‘沙僧‘,180,30); $p4 -> num(); //外部访问静态属性 echo ‘师徒一共‘ . Person::$num . ‘人‘ . ‘每天吃‘ . Person::$food_sum . ‘块蛋糕‘;
//创建一个类来计算一共有1000块蛋糕每过一天蛋糕还剩多少 class Day public $day; public static $sum = 1000; public function sum() self::$sum -= Person:: $food_sum; $day1 = new Day(); $day1 -> day = ‘第一天‘; $day1 -> sum(); echo ‘<br>‘ . $day1 -> day . "蛋糕还剩下" . Day::$sum; $day2 = new Day(); $day2 -> day = ‘第二天‘; $day2 -> sum(); echo ‘<br>‘ . $day2 -> day . "蛋糕还剩下" . Day::$sum; 输出结果: 师徒一共4人每天吃47块蛋糕 第一天蛋糕还剩下953 第二天蛋糕还剩下906
以上是关于面向对象的静态属性的主要内容,如果未能解决你的问题,请参考以下文章