PHP static:静态方法和属性
在 PHP 中,通过 static 关键字修饰的成员属性和成员方法被称为静态属性和静态方法,这里可以将它们统称为静态成员,类中的静态成员与类中的一般成员不同,静态成员不会被实例化到对象中,也就是说我们不需要实例化一个类,就可以通过类来访问静态成员。
在类中声明静态变量很容易,我们可以在类的普通成员前加一个 static 关键字,就可以将这个普通成员变成静态成员了。这样一来,我们可以在不实例化类的情况下,直接访问类中的这些静态成员。访问静态成员的语法格式如下:
如果要在类内部的成员方法中访问静态属性,只要在静态属性的名称前加上操作符
下面通过一个简单的示例演示一下静态成员的定义:
【示例】声明一个静态变量 $num,然后声明一个方法,在方法的内部调用静态变量并给变量的值加 1;然后,实例化类中的对象,最后,调用类中的方法。
在类中声明静态变量很容易,我们可以在类的普通成员前加一个 static 关键字,就可以将这个普通成员变成静态成员了。这样一来,我们可以在不实例化类的情况下,直接访问类中的这些静态成员。访问静态成员的语法格式如下:
类名::$静态属性
类名::静态方法()
::
符号被称为范围解析操作符,用于访问静态成员、静态方法和常量,还可以用于覆盖类中的成员和方法。如果要在类内部的成员方法中访问静态属性,只要在静态属性的名称前加上操作符
self::
即可。下面通过一个简单的示例演示一下静态成员的定义:
<?php class Website{ static public $name = '新宝库<br>'; public $title = 'PHP教程'; public static function url(){ echo self::$name; echo 'https://www.xinbaoku.com/php/<br>'; echo $this -> title; } } Website::url(); ?>运行结果如下:
新宝库
https://www.xinbaoku.com/php/
Fatal error: Uncaught Error: Using $this when not in object context ……
注意:在静态方法中,只能调用静态变量,不能调用普通变量;而普通方法则可以调用静态变量。
使用静态成员,除了可以不需要实例化对象外,另一个作用就是在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用,这一点和我们前面介绍的静态变量相似。【示例】声明一个静态变量 $num,然后声明一个方法,在方法的内部调用静态变量并给变量的值加 1;然后,实例化类中的对象,最后,调用类中的方法。
<?php class Website{ static public $num = 0; public function add(){ echo '$num 的值为:'.self::$num; self::$num++; } } $num1 = new Website(); $num1 -> add(); echo '<br>'; $num2 = new Website(); $num2 -> add(); ?>运行结果如下:
$num 的值为:0
$num 的值为:1
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算