加入收藏 | 设为首页 | 会员中心 | 我要投稿 安阳站长网 (https://www.0372zz.cn/)- 高性能计算、分布式云、混合云存储、云计算、视频终端!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-07-14 11:25:45 所属栏目:PHP教程 来源:互联网
导读:PHP中若使用static关键字来修饰属性、方法,称这些属性、方法为静态属性、静态方法,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为类属性或类方法。 程序中为什么要使用静态方法和属性呢?它们
  PHP中若使用static关键字来修饰属性、方法,称这些属性、方法为静态属性、静态方法,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法”。
 
  程序中为什么要使用静态方法和属性呢?它们有几个特性是比较有用的:不需要实例化类就可以访问静态方法和属性,在代码的任何地方都可以使用!
 
  <?php
  class Example{
   static public $num = 0;
   static public function staticFunc(){
   self::$num++;
   print self::$num;
   }
  }
  echo Example::$num;
  echo Example::staticFunc();
  ?>
  需要注意的是:
 
  1.静态方法不能访问普通属性,只能访问静态属性
 
  2.静态方法是以类为作用域的,所以不用实例化就可以使用::来连接静态属性和静态方法
 
  3.静态方法中不能使用伪关键词
 
  那么常量属性和静态属性有什么区别呢?
 
  <?php
  class Example{
    const NUM = 0;
    //...
  }
  ?>
  常量属性不以$开头 而是以大写字母命名,他与静态属性的区别是它不可以被重新复制,否则会解析错误。
 
  常量属性
 
  有些属性是不能改变的
 
  在PHP 5可以在类中定义常量属性,和全局变量一样,类常量一旦设置后就不能改变。常量属性用const关键字来声明,常量不像常规属性那样以 $ 开头,按照惯例,只能用大写字母来命名常量,如下所示:
 
  class shopProduct {
      constAVAILABLE = 0;
      //…
  }
  常量属性只包含基本数据类型的值,不能将一个对象指派给常量,像静态属性一样,只能通过类而不能通过类的实例访问常量属性,引用常量时不需要用 $ 作为前导符,如下所示:
 
  echoshopProduct::AVAILABLE;
 
  给已经声明过的常量赋值会引起解析错误。
 
  当需要在类的所有实例中都能访问某个属性,并且属性值无需改变时,应该使用常量。

(编辑:安阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读