__set($key,$values) 和__get($varName) 魔术方法设置读取私有属性

__set($key,$val) 对类内私有属性赋值
  作用:对私有属性的处理
当在类外对类内的私有属性赋值时会自动调用此函数

__get($varName) 读取类内私有属性

  作用:虽然可以外部访问,但有限制条件,否则直接public即可,不需要私有化此属性
    根据限制条件 开放访问权限
  当对象调用类内私有属性时调用此方法
  必须有返回值 return $this->$varName

class A{
	private $name;
	private $age;
	function __set($key,$values){
		$this->$key=$values;

	}
	function __get($varName){
		if(trim($_SESSION['utype'])=='teacher'){
			return $this->$varName;
		}else{
			return "保密";
			}
	
	}
	

}
$a=new A();
$a->name="jack";

  


 

原文地址:https://www.cnblogs.com/jiechn/p/4655229.html