PHP中self与static关键字有何区别及具体使用方法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1197个文字,预计阅读时间需要5分钟。
对于许多PHPer来说,self与static这两个PHP关键字都不陌生。它们都不算新生儿。
我们学会通过self::xxxx这种形式来调用当前类的静态属性和方法。而static呢?很多人只知道它是用来定义一个静态的常量。
其实,static关键字还有更深层次的用途。它可以将变量或方法声明为静态的,这意味着它们属于类本身,而不是类的实例。这样一来,无论创建多少个类的实例,静态成员都只有一个副本。
简单来说,static关键字主要用于:
1. 定义静态变量:这些变量在类的所有实例之间共享,并且只初始化一次。
2.定义静态方法:这些方法不依赖于类的实例,可以直接通过类名调用。
举个例子:
php
class MyClass { public static $staticVar='Hello, World!';public static function staticMethod() { echo $staticVar; }}
echo MyClass::$staticVar; // 输出:Hello, World!MyClass::staticMethod(); // 输出:Hello, World!
在这个例子中,$staticVar和staticMethod都是静态的,因此可以通过类名直接访问它们。
本文共计1197个文字,预计阅读时间需要5分钟。
对于许多PHPer来说,self与static这两个PHP关键字都不陌生。它们都不算新生儿。
我们学会通过self::xxxx这种形式来调用当前类的静态属性和方法。而static呢?很多人只知道它是用来定义一个静态的常量。
其实,static关键字还有更深层次的用途。它可以将变量或方法声明为静态的,这意味着它们属于类本身,而不是类的实例。这样一来,无论创建多少个类的实例,静态成员都只有一个副本。
简单来说,static关键字主要用于:
1. 定义静态变量:这些变量在类的所有实例之间共享,并且只初始化一次。
2.定义静态方法:这些方法不依赖于类的实例,可以直接通过类名调用。
举个例子:
php
class MyClass { public static $staticVar='Hello, World!';public static function staticMethod() { echo $staticVar; }}
echo MyClass::$staticVar; // 输出:Hello, World!MyClass::staticMethod(); // 输出:Hello, World!
在这个例子中,$staticVar和staticMethod都是静态的,因此可以通过类名直接访问它们。

