加入收藏 | 设为首页 | 会员中心 | 我要投稿 92站长网 (https://www.92zz.com.cn/)- 语音技术、视频终端、数据开发、人脸识别、智能机器人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在php类中protected与const属性详解

发布时间:2023-11-03 11:02:33 所属栏目:PHP教程 来源:转载
导读:   const属性



  用const属性定义的字段是一个常量,类中的常量和静态变量类似,不同之处就是常量的值一旦赋值不能被改变.const定义常量不需要加$符号,其结构形式如下:



  co
  const属性
 
  用const属性定义的字段是一个常量,类中的常量和静态变量类似,不同之处就是常量的值一旦赋值不能被改变.const定义常量不需要加$符号,其结构形式如下:
 
  const 常量名称  //常量名称不能用$符号
 
  1、常量属性用 const 关键字来声明,不像常规属性一样用美元符$开头;
 
  2、按照惯例,只能用大写字母来命名常量;
 
  3、和全局变量一样,类常量一旦设置后就不能改变;
 
  4、只包含基本数据类型的值,不能将一个对象指派给常量;
 
  5、像静态属性一样,只能通过类而不能通过类的实例(对象)访问常量;
 
  6、引用常量时不需要用美元符号为前导符;
 
  7、给已经声明过的常量赋值会引起解析错误;
 
  8、当需要在类的所有示例中都能访问某个属性,并且属性值无需改变时,应该使用常量。
 
   代码如下
 
  1
 
      header('Content-type:text/html;charset=utf-8');  
 
      class ShopProduct{  
 
          const GUOWANPIAOPEN = "郭碗瓢盆";  
 
          const BLOGTITLE = "美好生活的开始!";  
 
          //...  
 
          public function sayHello(){  
 
              print ShopProduct::GUOWANPIAOPEN."-".ShopProduct::BLOGTITLE."
 
  ";  
 
              // 注意,每次引用常量都必须指向当前类(当前类名加两个冒号)  
 
              //print self::GUOWANPIAOPEN."-".self::BLOGTITLE."
 
  ";  
 
              // 这里 self 关键字指向当前类,作用与上面一样  
 
          }  
 
      }  
 
      print ShopProduct::sayHello();  
 
      //print ShopProduct::GUOWANPIAOPEN;  
 
  ?>
 
  protected属性
 
  protected限定的字段作用域在public和private之间,若该成员被声明称protected(保护),则代表只能在该类和该类的子类中使用该字段.
 
  实例代码如下:
 
   代码如下
 
  1 class me{           
 
           protected $Money =100;        
 
           protected $price1=60;         
 
           public function Sell($price){       
 
            if($this->price1<=$price){       
 
             echo "好,卖给你了.
 
          ";      
 
             $this->Money = $this->Money+$price;   
 
             return "我现在总共有 ".$this->Money." 元钱";  
 
            }
 
           else{            
 
            echo "我不卖 ,$price 太便宜了
 
          ";     
 
            return "现在我还是 ".$this->Money." 元钱";   
 
             }
 
            }
 
           }
 
           
 
           $now=new me;           
 
           echo $now->Sell(30);          
 
  ?>
 

(编辑:92站长网)

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

    推荐文章