php类的静态属性,php学习之类与对象的类的静态属性
静态变量定义
静态变量是当前类的所有对象共享的变量,任何一个该类的对象去访问它时,取得的都是相同的值,同样任何一个该类的对象去修改它时,也时同样被修改
定义静态变量
访问修饰符 static 静态属性名;
static 访问修饰符 静态属性名;
两种方式都可以
访问静态变量
在类的内部访问:有两种方式
self::静态属性名;
类名::$静态属性名;
在类的外部访问
如果是在类的外部访问今天属性,静态属性需要是public,否则也不能直接访问,访问的形式是 类名::$属性名
$thishe self 的区别
使用方式不同
self::
$this->
self是类的范畴指向类,$this是对象实例,指向对象实例
静态变量的使用注意事项
如果在类的内部去使用静态变量,有两种形式,self::$静态变量, 类名::$静态变量, 静态属性可以是public、protected、private
在类的外部访问静态属性时 只能是类名::$静态属性名,要求是public
静态变量可以在定义时,直接初始化,普通的成员属性也可以
需求:
玩游戏时,当有人加入游戏时加一,最后统计有多少人加入游戏
优化前
//玩游戏时,当有人加入游戏时加一,最后统计有多少人加入游戏
class Game{
public $name ;
public $num = 0;
public function __construct($name){
$this->name = $name;
}
public function playGame(){
echo $this->name.'
加入游戏';
global $num ;
$num++;
}
}
$play1 = new Game('张三');
$play2 = new Game('李四');
$play3 = new Game('王五');
$play4 = new Game('赵六');
$play1->playGame();
$play2->playGame();
$play3->playGame();
$play4->playGame();
echo '总共有' . $num .'个人加入游戏';
?>
对代码进行优化!
静态变量:静态变量是属于所有对象,因此可以被所有的对象共享‘
//玩游戏时,当有人加入游戏时加一,最后统计有多少人加入游戏
class Game{
public $name ;
public static $num = 0;
public function __construct($name){
$this->name = $name;
}
public function playGame(){
echo $this->name.'
加入游戏';
//在类中调用静态变量的方法是self::变量名
self::$num++ ;
}
//定义个统计方法
public function count1(){
echo '总共有' . self::$num .'个人加入游戏';
}
}
$play1 = new Game('张三');
$play2 = new Game('李四');
$play3 = new Game('王五');
$play4 = new Game('赵六');
$play1->playGame();
$play2->playGame();
$play3->playGame();
$play4->playGame();
$play4->playGame();
$play4->count1();?>
静态方法内存图
php类的静态属性,php学习之类与对象的类的静态属性相关推荐
- java对象属性的作用域类型_java 对象和类
类:类为对象定义属性和行为. 对象的定义:对象是代表现实世界可以明确标识的一个实体. 每个对象都有自己独特的标识.状态和行为. 一个对象的状态是由具体当前值的数据域来表示的. 一个对象的行为是由方法定 ...
- 经过前面几天的学习已经初步了解到了Java 今天开始学习Java的 对象与类
在了解对象与类之前,首先先学习方法 01.方法概述 概述:说白了就是用来存储一段代码 特点: 方法只有先定义才能使用 方法不会自动执行,必须调用才会执行(方法不调用,不会执行) 02.方法定义和调用( ...
- html添加删除元素属性,jQuery学习笔记——.attr()和.removeAttr()方法操作元素属性
今天主要和大家一起分享一下如何使用jQuery的jQuery就可以让我们轻松的读取,添加,更改或删除一个(或多个)元素中的任何属性,在jQuery中我们可以使用下面的方法来实现:.attr():jQu ...
- java程序 构建mycircle类_Java语言程序设计(十九)对象和类的应用实例
1.我们定义一个Circle类并使用该类创建对象,我们创建三个圆对象,1.0,25和125,然后显示这三个圆的半径和面积,将第二个对象的半径改为100,然后显示它的新半径和面积.程序清单如下: pac ...
- html 删除一个属性值,html之DOM对象removeAttribute()方法(删除节点属性)功能简介说明...
摘要: 下文讲述DOM对象removeAttribute()方法功能说明,如下所示: DOM removeAttribute()方法功能说明 DOM removeAttribute()方法功能(): ...
- 学习笔记----MATLAB的句柄类和实体值类
本系列内容为<MATLAB面向对象编程–从入门到设计模式>学习笔记,特此说明. Value类和Handle类 MATLAB面向对象编程中有两种类:一种叫叫做Value类(Value Cla ...
- 11:类和对象、类的属性、类的方法
以下内容仅做自己学习使用,知识点内容来自柠檬班,转载请标记来源 @Author:木又 @File:demo01_类和对象.py @Time:2020/7/27 22:38 类的定义: class 类名 ...
- Java中的对象和类
一. OOP中的基本概念 Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP), 它允许设计者将面向对象设计 ...
- 5.2 IO流(File类,Propertis配置文件,其他类(打印流,序列流,操作对象的流(序列化接口),随机访问文件的流,管道流,操作基本数据的流,操作数组的流,操作字符串的流),编码表)
1.File类 IO流的流对象只能操作设备上的数据.File类:1.用来将文件或者文件夹(也称目录)封装成对象. 2.方便对文件和文件夹的属性信息进行操作.(操作文件夹,文件的属性(创建时间,修改时间 ...
- javascript基础教程_JavaScript基础教程(九)对象、类的定义与使用
对象.类的定义与使用 对象与类是面向对象程序设计语言教学过程中不可避免需要讲解的内容之一.很多人将两者混为一谈,简单认为对象就是类,类就是对象.实际上深入分析的话,对象与类的区别还是较为明显的.本文主 ...
最新文章
- AI一分钟 | 特斯拉再融46亿;腾讯AI Lab宣布开源多标签图像数据集
- log4j的日志级别(ssm中log4j的配置)
- Linux计划任务与压缩归档
- zabbix邮件报警python脚本
- JavaWeb课程复习资料——中文乱码上下文处理
- julia example_使用Julia中的Example的sign()函数
- 巨人网络第三季度营收5.06亿元 净利润3亿元
- EmEditor Pro 8.3简体中文绿色增强(无需安装)版
- python用三种方式定义字符串、并依次输出_Python 字符串格式化输出的3种方式
- 转]python 结巴分词(jieba)学习
- shell脚本中,for的用法
- 软件验收报告文档模版
- Solaris11操作命令汇总
- 从零开始设计RISC-V处理器——指令系统
- win7一点计算机就卡死,win7系统电脑经常卡住假死页面关不掉的解决方法
- Axure统计图表设计(Excel设计统计图表、HighChart设计统计图表)
- 【云原生】Helm 常用命令(chart 安装、升级、回滚、卸载等操作)
- m基于迫零ZF准则的通信均衡器的matlab仿真
- python红色的颜色表达式_python – 排序(十六进制)颜色以匹配彩虹
- 服务器声卡硬件安装,虚拟声卡,详细教您怎么安装虚拟声卡