php专区

 首页 > php专区 > PHP高级 > 面向对象MVC > php类中protected与const属性详解 - php面向对象

php类中protected与const属性详解 - php面向对象

分享到:
【字体:
导读:
          在php中protected是私有变量,若该成员被声明称protected(保护),则代表只能在该类和该类的子类中使用该字段,而const是一个常量它的值一旦赋值不能被改变,下面看两个例子...

php类中protected与const属性详解

在php中protected是私有变量,若该成员被声明称protected(保护),则代表只能在该类和该类的子类中使用该字段,而const是一个常量它的值一旦赋值不能被改变,下面看两个例子.

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

const 常量名称 //常量名称不能用$符号

1、常量属性用 const 关键字来声明,不像常规属性一样用美元符$开头;

2、按照惯例,只能用大写字母来命名常量;

3、和全局变量一样,类常量一旦设置后就不能改变;

4、只包含基本数据类型的值,不能将一个对象指派给常量;

5、像静态属性一样,只能通过类而不能通过类的实例(对象)访问常量;

6、引用常量时不需要用美元符号为前导符;

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

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

PHP实例代码如下:

  1.     header('Content-type:text/html;charset=utf-8');   
  2.     class ShopProduct{   
  3.         const GUOWANPIAOPEN = "郭碗瓢盆";   
  4.         const BLOGTITLE = "美好生活的开始!";   
  5.         //...   
  6.         public function sayHello(){   
  7.             print ShopProduct::GUOWANPIAOPEN."-".ShopProduct::BLOGTITLE."";   
  8.             // 注意,每次引用常量都必须指向当前类(当前类名加两个冒号)   
  9.             //print self::GUOWANPIAOPEN."-".self::BLOGTITLE."";   
  10.             // 这里 self 关键字指向当前类,作用与上面一样   
  11.         }   
  12.     }   
  13.    
  14.     print ShopProduct::sayHello();   
  15.     //print ShopProduct::GUOWANPIAOPEN;   
  16. ?> 

protected属性:

protected限定的字段作用域在public和private之间,若该成员被声明称protected(保护),则代表只能在该类和该类的子类中使用该字段.

PHP实例代码如下:

  1. class me{            
  2.          protected $Money =100;         
  3.          protected $price1=60;          
  4.           
  5.          public function Sell($price){        
  6.           if($this->price1<=$price){        
  7.            echo "好,卖给你了. 
  8.         ";       
  9.            $this->Money = $this->Money+$price;    
  10.            return "我现在总共有 ".$this->Money." 元钱";   
  11.           }  
  12.          else{             
  13.           echo "我不卖 ,$price 太便宜了 
  14.         ";      
  15.           return "现在我还是 ".$this->Money." 元钱";    
  16.            }  
  17.           }  
  18.          }  
  19.           
  20.          $now=new me;            
  21.          echo $now->Sell(30);           
  22.  
  23. ?> 
分享到:
php类的魔术方法 - php面向对象
php类的魔术方法 在php 5中,提供了构造函数,析构函数,对象克隆的方法,重载方法等. 1、构造函数__construct 如果在类申明中__construct函数,将被当成一个构造函数并且在对象建立时被执行,但在php4中,构造函数的名称与类名相同就是构造函数哦,这一点有一些不同。 2、析构函数__destruct ...
PHP成员变量获取对比(类成员变量) - php...
PHP成员变量获取对比(类成员变量) 下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看. 有如下4个代码示例,你认为他们创建对象,并获得成员变量的速度排序是怎样的? 1:将成员变量设置为public,通过赋值操...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……