当前位置 : 主页 > 网络编程 > PHP >

对象私有变量的读取、写入(存取器机制)

来源:互联网 收集:自由互联 发布时间:2021-07-03
?php //私有变量的写入与读取 class Myinfo{ private $Name; private $Age; private $Job; function __call($funcName,$arArguments){ $opsType=substr($funcName,0,3); $opsKey=substr($funcName,3); switch($opsType){ case 'set': return($this-
 
<?php 
//私有变量的写入与读取
  
class Myinfo{
    private $Name;
    private $Age;
    private $Job;
      
    function __call($funcName,$arArguments){
        $opsType=substr($funcName,0,3);
        $opsKey=substr($funcName,3);
          
        switch($opsType){
            case 'set':
                return($this->SetAccessor($opsKey,$arArguments[0]));
                break;
            case 'get':
                return($this->GetAccessor($opsKey));
                break;
        }
        return(false);
    }
      
    private function SetAccessor($opsKey,$value){
        if(property_exists($this,$opsKey)){
            if(is_numeric($value)){
                eval('$this->'.$opsKey.'='.$value.';');
            }else{
                eval('$this->'.$opsKey.'="'.$value.'";');
            }
        }else{
            return(false);
        }
    }
      
    private function GetAccessor($opsKey){
        if(property_exists($this,$opsKey)){
            eval('$name=$this->'.$opsKey.';');
            return($name);
        }else{
            return(false);
        }
    }
      
    function __toString(){
        return "Name:$this->Name<br>Age:$this->Age<br>Job:$this->Job<br>";
    }
}
  
$wzy=new Myinfo();
$wzy->setName('wzy');
$wzy->setAge(22);
$wzy->setJob('Student');
  
echo $wzy;
?>

网友评论