当前位置:首页 > PHP教程 > php应用 > 列表

PHP静态方法和静态属性及常量属性的区别与介绍

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-13 23:32:49 浏览: 评论:0 

PHP中若使用static关键字来修饰属性、方法,称这些属性、方法为静态属性、静态方法,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”。

程序中为什么要使用静态方法和属性呢?它们有几个特性是比较有用的:不需要实例化类就可以访问静态方法和属性,在代码的任何地方都可以使用!

  1. <?php 
  2. class Example{ 
  3.  static public $num = 0; 
  4.  static public function staticFunc(){ 
  5.  self::$num++; 
  6.  print self::$num
  7.  } 
  8. echo Example::$num
  9. echo Example::staticFunc(); 
  10. ?> 

需要注意的是:

1.静态方法不能访问普通属性,只能访问静态属性

2.静态方法是以类为作用域的,所以不用实例化就可以使用::来连接静态属性和静态方法

3.静态方法中不能使用伪关键词

那么常量属性和静态属性有什么区别呢?

  1. <?php 
  2. class Example{ 
  3.   const NUM = 0; 
  4.   //... 
  5. ?> 

常量属性不以$开头 而是以大写字母命名,他与静态属性的区别是它不可以被重新复制,否则会解析错误。

常量属性

有些属性是不能改变的

在PHP 5可以在类中定义常量属性,和全局变量一样,类常量一旦设置后就不能改变。常量属性用const关键字来声明,常量不像常规属性那样以 $ 开头,按照惯例,只能用大写字母来命名常量,如下所示:

  1. class shopProduct { 
  2.     constAVAILABLE = 0; 
  3.     //… 

常量属性只包含基本数据类型的值,不能将一个对象指派给常量,像静态属性一样,只能通过类而不能通过类的实例访问常量属性,引用常量时不需要用 $ 作为前导符,如下所示:

echoshopProduct::AVAILABLE;

给已经声明过的常量赋值会引起解析错误。

当需要在类的所有实例中都能访问某个属性,并且属性值无需改变时,应该使用常量。

Tags: PHP静态方法 PHP静态属性

分享到: