Blogger Information
Blog 55
fans 0
comment 0
visits 50671
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP私有化,通过公共接口set()和get()进行访问-0829
Bean_sproul
Original
815 people have browsed it

实例

<?php 


class GirlFriend {//定义一个女朋友类
 
    private $name; //private是访问控制 ,声明为私有的
    
    private $age; 

    private $stature = []; 

    private $date = [];


//创建一个对外访问公共接口,设置一些条件 
    public function getName1($yourName=''){
    
        if (!empty($yourName) && $yourName == '特别指定人') {
               return $this->name;//返回成员属性
		       
        } else{
               return '非法访问';
        }
    }
/*--------------------公共接口------------------*/
 
 
  //声明构造方法
  //类中用双下划线的方法是系统定义,由系统自动调用,是魔术方法
    public function __get($name){
         
         $msg =null;
         if (isset($this->$name)) {
         	$msg = $this->$name;
         } elseif (isset($this->$date[$name])) {
         	$msg = $this->$date[$name];
         } else
            $msg='无此属性';
    }


    // 设置器
    public function __set($name,$value)
    {
        return $this->$name=$value;
    }

/*--------------------公共接口------------------*/


/*--------------------自定义接口------------------*/
   //声明构造方法 函数创建一个新的 SimpleXMLElement 对象。
  public function __construct($name,$age,array $stature)//定死变量按date要求
  {
    /*private 访问符限制的属性仅在当前对象的内部使用*/
    $this->name = $name;
    $this->age = $age;
    $this->stature = $stature;

  }

  //创建一个对外访问公共接口,没有限制不是很安全 
    public function getName(){

        return $this->name;
        
    }

  

/*--------------------自定义接口  end------------------*/   

}
  

  $girlfriend2 = new GirlFriend('玛利亚',30,[80,50,80]);//实例化类,建立一个新对象并赋值
  echo $girlfriend2->getName();//可以通过公共接口getName 拿到对象属性
  echo $girlfriend2->name,'<br>';
  echo $girlfriend2->age,'<br>';
  var_export($girlfriend2->stature);
  echo '<hr>';
 
  $girlfriend3 = new GirlFriend('玛利亚',30,[80,50,80]);//实例化类,建立一个新对象并赋值
  echo $girlfriend3->getName1('特别指定人');//可以通过公共接口getName1 且里面的值必须等于$yourName,才能拿到对象属性
  
  echo '<hr><h3>通过公共接口访问私有成员属性</h3>';
  $girlfriend4 = new GirlFriend('西施',20,[80,50,80]);//实例化类,建立一个新对象并赋值
  echo $girlfriend4->name,'<br>';
  
  echo '<h3>更新私有成员属性</h3>';
  echo $girlfriend4->name='安吉拉','<br>';
  echo $girlfriend4->name,'<br>';
  echo $girlfriend4->email,'<br>';

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

 

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post