博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

PHP中相关分装函数

Posted on 2012-05-25 00:39  乌雲安全  阅读(828)  评论(2编辑  收藏  举报

封装是把一些相关的属性和行为隐藏起来,从而得到保护和安全。

封装关键字

public 表示全局,类内部外部子类都可以访问;
protected表示受保护的,只有本类或子类或父类中可以访问;
private表示私有的,只有本类内部可以使用;

            Public    Protected    Private
全局       √             X              X
继承类    √             √              X
本类       √             √              √

封装相关函数:__set() , __get()

某些特定操作的时候需要访问和赋值封装的类型,这个时候我们就需要其他的函数帮我们完成这些操作,PHP为我们提供了个方法名:__set() , __get()

__set() 取得当前类中封装过私有属性或者方法重新执行或赋值操作

用法:__set($Name,$Value)

__get() 取得当前类中封装过属性或方法并转换成共有属性

用法:__get($Name)

 

实例:

<?php
class wuqiang{
    private   $name;

    function __construct($name=""){
        $this->name=$name;      
        
    }   //PHP5中的构造函数初始化的方法
    function  __get($n){
        return $this->name;              //因为私有变量不能被访问,所以必须用__get()方法来访问。
    }
    function  __set($n,$v){              //因为私有变量不能被修改,所以需要用__set()方法来修改。
        if($v=="小强")                  //如果修改的是小强的话,修改,否则不做修改
        {
            $this->$n=$v;
        }
        
    }
    
    function li(){
         $this->name."看电影";   //$this关键字的用法
    }
}
  $a=new wuqiang("小明");
  
 $a->name="小强";              //私有变量不能被修改
  echo $a->name;                //私有变量是不能访问的,
  
  
 
 

?>
原文地址:http://www.qinychun.com/2012/06/php-set-get/39.html