php中如何声明静态属性,PHP使用static关键字声明静态属性和静态方法
PHP使用static关键字声明静态属性和静态方法
在PHP中,通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法。
静态属性和静态方法不需要在被类实例化的情况下就可以直接使用。
1. 静态属性
静态属性就是使用static关键字修饰的成员属性,它属于类本身而不属于类的任何实例。它相当于存储在类中的全局变量,可以在任何位置通过类来访问。
静态属性不能通过一个类已实例化的对象来访问。
静态属性访问的语法格式如下:
类名称::$静态属性名称
其中的符号“::”被称为范围解析操作符,用于访问静态属性、静态方法和常量,还可以用于覆盖类中的成员和方法。
在静态属性的名称前加上操作符“self::”,即可在类内部的成员方法中访问静态属性。而只使用类名称::,则可以在类外面调用类内部的静态属性。
注意:
静态属性不可以由对象通过->操作符来访问。
就像其它所有的PHP静态变量一样,静态属性只能被初始化为文字或常量,不能使用表达式。所以可以把静态属性初始化为整数或数组,但不能初始化为另一个变量或函数返回值,也不能指向一个对象。
2. 静态方法
静态方法就是通过static关键字修饰的成员方法。由于它不受任何对象的限制,所以可以不通过类的实例化直接引用类中的静态方法。
静态方法可以通过一个类已实例化的对象来访问。
静态方法引用的语法格式如下:
类名称::静态方法名称([参数1,参数2,...])
同样,在静态方法的名称前加上操作符“self::”,即可在类内部的成员方法中引用静态方法。而只使用类名称::,则可以在类外面调用类内部的静态方法。
注意:
在静态方法中,只能调用静态变量,而不能调用普通变量;而普通方法则可以调用静态变量。
用静态方式调用一个非静态方法会导致一个E_STRICT级别的错误。
由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。
提示
使用静态成员,除了可以不需要实例化对象,另一个作用就是在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用。
为了兼容PHP 4,如果没有指定为protected或private,静态属性和静态方法则默认为公有public。
自PHP 5.3.0起,可以用一个变量来动态调用类,但该变量的值不能为关键字self、parent或static。
说明
静态成员不用实例化对象,当类第一次被加载时就已经分配了内存空间,所以直接调用静态成员的速度要快一些。但如果静态成员声明得过多,空间一直被占用,反而会影响系统的功能。这个尺度只能通过实践积累才能真正把握!
实例
class website{
static $num="0"; // 定义静态变量
public function visit(){ // 定义visit方法
echo "您是第".self::$num."位访客!"; // 输出静态变量信息
self::$num++; // 静态变量做自增运算
}
}
echo '第一次实例化调用:
';
$website=new website(); // 实例化对象
$website->visit(); // 调用对象$website的visit()方法
$website->visit();
$website->visit();
echo '
第二次实例化调用:
';
$website2=new website(); // 改变对象句柄实例化对象
$website2->visit();
$website2->visit();
$website2->visit();
?>
在浏览器中查看PHP使用static关键字声明静态属性和静态方法的显示效果。如下图所示:
AS3.0声明静态属性和静态方法
静态属性的变量声明要加static,static var 名称:属性类型=值 静态属性的常量声明要加static或者const,并在声明时就要赋值.static||const var 名称:属性类型= ...
使用static关键字修饰一个属性
//使用static关键字修饰一个属性 //static作用: //static:静态 //1.使用static关键字修饰一个属性,声明为static的变量本质就是一个全局变量; //2.静态变量或方 ...
PHP static静态属性和静态方法
这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了.静态属性.方法(包括静态与非静态)在内 ...
php面向对象中static静态属性和静态方法的调用
这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属性和静态 ...
static静态属性和静态方法的原理与调用技巧
这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属 ...
PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结
前 言 OOP 学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1 PHP中的抽象 ...
php静态属性和静态方法
php静态属性和静态方法 2012-09-29 10:18 1518人阅读 评论(0) 收藏 举报 phpfunction 本php教程主要是学习php中静态属性和静态方法的使用方法和基本的示例. · ...
C:static 关键字、静态变量、跨类访问数据
static 在OC中的使用 参考1 参考2 参考3 参保4 参考5 跨类访问成员 参考 +号方法就是类方法(静态方法),说明不用创建对象,可以直接通过类型去直接调用这个方法,在OC ...
Class的使用,构造方法,实例属性和实例方法,静态属性和静态方法,this和super关键字,类的继承
s6新增了一种定义对象实例的方法,Class(类)这个概念,作为对象的模板.class可以看作只是一个语法糖,通过class关键字,可以定义类.让对象原型的写法更加清晰.更像面向对象编程的语法. 一. ...
随机推荐
关于导出Excel
Asp.Net 在刚毕业那会,做项目全是服务器控件.导出Excel的代码也很简单,在button触发后台事件后,后台生成一个excel文件,然后读取成字节,输出到客户端. Response.AddHe ...
Guava 10-散列
概述 Java内建的散列码[hash code]概念被限制为32位,并且没有分离散列算法和它们所作用的数据,因此很难用备选算法进行替换.此外,使用Java内建方法实现的散列码通常是劣质的,部分是因为它 ...
Repeater和Gridview前台显示行号的方法
Repeater : Container.ItemIndex (行号从零开始,如果想改为从1开始,那么可以将以上的代码改为Container.ItemIndex + 1),见下示例:
Unity3D 灰度shader(改编自NGUI)
原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:[] 本文链接地址: 灰度shader 废话不多说,直接图解流程: 1.原图 2.改动shader 打开NGUI自带的shader ...
AutoPy首页、文档和下载 - 跨平台的Python GUI工具包 - 开源中国社区
AutoPy首页.文档和下载 - 跨平台的Python GUI工具包 - 开源中国社区 AutoPy是一个简单跨平台的 Python GUI工具包,可以控制鼠标,键盘,匹配颜色和屏幕上的位图.使用纯A ...
css中的hover ,关于li与a标签的问题
使用 Laravel 数据填充生成 中文 测试数据
Laravel5.4 及更新版本设置了相关的配置项 app.faker_locale,只不过在文档和默认的配置文件中看不到这一参数.相关源码在 Illuminate\Database\Database ...
iOS UI-(多)视图控制器的生命周期、加载方法和模态视图方法以及屌丝方法
#import "ViewController.h" #import "SecondViewController.h" @interface ViewContr ...
poj 1966(顶点连通度)
题意:给出一个n个节点和m条边的图,求该图的顶点连通度. 分析: 顶点连通度的求解可以转换为网络最大流问题. (1)原图G中的每个顶点v变成网络中的两个顶点v‘和v’‘,顶点v’至v''有一个条弧(有 ...
php中如何声明静态属性,PHP使用static关键字声明静态属性和静态方法相关推荐
- C++基础之static关键字(1)--静态局部变量详解
本篇文章主要讲解C++基础中static关键字的静态局部变量并进行实例演示. 一.静态局部变量定义 在讲静态局部变量时,我们首先看一下全局变量和局部变量. 1.全局变量 全局变量定义在所有函数之外,并 ...
- 菜鸟学JAVA之——static关键字(静态属性和动态属性的区别)
为什么static不用创建对象就可以被调用? 在未创建对象之前,所有静态属性或方法都放在元数据区里,静态的可通过类名调用 public class Cat{public static String n ...
- Java的知识点10——static关键字、静态初始化块、 参数传值机制、包、导入类import、 静态导入
static 关键字 在类中,用static声明的成员变量为静态成员变量,也称为类变量. 类变量的生命周期和类相同,在整个应用程序执行期间都有效.它有如下特点: 1. 为该类的公用变量,属于类,被该类 ...
- 1.16 static关键字(静态变量和静态方法)
在类中,使用 static 修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有. 静态成员不依赖于类的特定实例,被 ...
- 面试中常被问(一)static关键字
static关键字 1在C语言中,static修饰的变量与全局变量类似,在程序编译时(程序运行前)加载到内存数据段上,其中细分为(bss段:存放未初始化的全局变量,data段:存放初始化的全局变量) ...
- php 全局 静态变量,php的static关键字和全局变量
1.全局变量[其不属于面向对象的思想,因为其放在对象之外的],面向对象有一个特点,其实封装的,php希望其所有的成员都应该放在类中:php的面向对象是基于面向对象的,不是纯粹面向对象的:也就是其可以面 ...
- php 类static引用函数吗,php中在变量和函数前加static关键字之后的区别
static全局变量和普通全局变量,static局部变量和普通局部变量,static函数与普通函数的区别?下面本文将一一为你解答. (1)全局变量(外部变量)的说明之前再冠以static 就构成了静态 ...
- static在php中,php中static关键字在类中的使用
static关键字用来修饰属性.方法,称这些属性.方法为静态属性.静态方法. static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为"类 ...
- Java-Day11 面向对象遍程的入门 (类属性的默认值、构造方法、类的成员、static关键字、类的成员加载顺序、Java(权限)访问修饰符)
目录 1. 类的属性的默认值问题 2. 构造方法(Constructor) 3. 类的成员 3.1 类的成员之一:属性 3.2 UML类图 4. static关键字 5. 类的成员加载(运行)顺序 6 ...
最新文章
- Udacity机器人软件工程师课程笔记(九)-ROS-Catkin包、工作空间和目录结构
- 一个多线程应用的最佳示例
- IDEA for Java Web
- GridView行号大集合
- Sad Angel (悲伤的天使)-Игорь Крутой
- 钱德沛教授:云计算和网格计算差别何在?
- c语言编常见算法,5个常见C语言算法
- SpringSecurity Form Login
- android音频杂音问题_如何让短视频音质更好,AE+PR短视频音频输出处理讲解
- mysql实时监控工具
- 删除linkinfo.dll
- Parallel GC
- 红米笔记本linux系统版本,小米笔记本安装Win10+Ubuntu16.04 LTS 双系统
- LVGL lv_msgbox消息对话框(22)
- python与sap_在python中连接SAP HANA
- 面试时工作经验不足,如何才能打动HR?
- linux dolphin模拟器,Dolphin for Mac(GameCube模拟器)
- android lint 安全检测,Android Lint检查
- Lightroom教程_如何导入lr预设?
- 使用Charles监控手机应用的网络请求
热门文章
- 1016. 部分A+B (这个版本仅供讨论)
- android 电量控制
- 国外6个最好的广告联盟营销推荐
- 思科 计算机网络 第六章测试考试答案
- s00devs_Devs @ Home –实时网络研讨会– 5月14日,13:00 CEST:高效应用程序的7个JVM参数
- 英语基础不好可以学会编程吗?
- 周易六十四卦——明夷卦
- 庄股高手和你谈选股绝招(2)
- 依据sh_goods的结构与数据,在mydb数据库中创建一张tm_goods表,并将价格在20到50之间的商品价格减5元,库存量再新增300件。
- 这么简单,抄抄,改改就行啦