PHP中self与static关键字有何区别及具体应用场景?

更新于
2026-09-28 19:06:59
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1049个文字,预计阅读时间需要5分钟。

PHP中self与static关键字有何区别及具体应用场景?

对于许多PHPer来说,self与static这两个PHP关键字都不陌生。它们都用于访问类成员,但用法有所不同。

我们学会通过self::xxxx这种形式来调用当前类的静态属性和方法。而static关键字则用于定义静态成员,即属于类的成员,而不是属于对象的成员。

很多人只知道static是用来定义一个静态的东西,但具体是什么,可能不太清楚。简单来说,static关键字定义的是静态成员,这些成员在类的所有实例中共享,而不是每个实例都有自己的副本。

对于大多数 PHPer 来说,self 与 static 两个 PHP 关键词都不算陌生。我们学会通过self::xxxx这种方式来调用当前类的静态属性和方法。而 static 呢?想必很多人只知道它是用于定义一个静态方法和类属性关键词。

这也是我之前的认知。

现在我们来回顾一下这两个关键词的一些常见用法:

// self 用法 1 :调用静态成员属性 class Person { protected static $maxAddressCount = 5; // 收获地址创建最大数量。 public function test() { echo self::$maxAddressCount; } } $person = new Person(); $person->test();

// self 用法 2 :调用静态方法 class Person { protected static $maxAddressCount = 5; // 收获地址创建最大数量。

阅读全文

本文共计1049个文字,预计阅读时间需要5分钟。

PHP中self与static关键字有何区别及具体应用场景?

对于许多PHPer来说,self与static这两个PHP关键字都不陌生。它们都用于访问类成员,但用法有所不同。

我们学会通过self::xxxx这种形式来调用当前类的静态属性和方法。而static关键字则用于定义静态成员,即属于类的成员,而不是属于对象的成员。

很多人只知道static是用来定义一个静态的东西,但具体是什么,可能不太清楚。简单来说,static关键字定义的是静态成员,这些成员在类的所有实例中共享,而不是每个实例都有自己的副本。

对于大多数 PHPer 来说,self 与 static 两个 PHP 关键词都不算陌生。我们学会通过self::xxxx这种方式来调用当前类的静态属性和方法。而 static 呢?想必很多人只知道它是用于定义一个静态方法和类属性关键词。

这也是我之前的认知。

现在我们来回顾一下这两个关键词的一些常见用法:

// self 用法 1 :调用静态成员属性 class Person { protected static $maxAddressCount = 5; // 收获地址创建最大数量。 public function test() { echo self::$maxAddressCount; } } $person = new Person(); $person->test();

// self 用法 2 :调用静态方法 class Person { protected static $maxAddressCount = 5; // 收获地址创建最大数量。

阅读全文