Correction status:qualified
Teacher's comments:
<?php //类的构造方法与查询器与设置器 class LeiMing3 { //private:访问控制符:私有的,必须在当前类中访问,外部不能访问 private $name = '二号'; private $age = 16; private $stature = [80,60,70]; private $yx = []; //声明一个构造方法:在实例化类的时候自动调用 //构造方法也构造器:对象属性的初始化 public function __construct($name,$age,array $stature){ $this->name = $name; $this->age = $age; $this->stature = $stature; } //查询器获取器,过滤外部访问 public function __get($name){ $msg = null;//定义一个空值 if(isset($this->$name)){//判断传输进来的属性是否存在 $msg = $this->$name; }elseif(isset($this->yx[$name])){//判断传输进来的属性是否存在自定义中 $msg = $this->yx[$name]; }else{ $msg ='非法数据';//查不到该属性 } return $msg; } public function __set($name,$value){ if(isset($this->$name)){//判断属性是否存在 $this->$name=$value;//存在接受属性 }else{ $this->yx[$name]=$value;//不存在就保存自定义属性 } }
<?php require 'LeiMing3.php'; $lm3 = new LeiMing3('3hao',28,[8,9,10]); //测试魔术方法__get() echo 'name: ',$lm3->name,'<br>'; echo 'age: ',$lm3->age, '<br>'; echo 'stature: ', print_r($lm3->stature,true), '<br>'; echo 'nothing:', $lm3->xxx, '<br>';//获取一个不存在的属性 //测试魔术方法: __set() $lm3->name = '12313'; $lm3->age = 111; $lm3->stature = [5,8,88]; echo 'name: ',$lm3->name,'<br>'; echo 'age: ',$lm3->age, '<br>'; echo 'stature: ', print_r($lm3->stature,true), '<br>'; $lm3->hobby = '购物';//自定义hobby属性并赋值 echo 'custom:', $lm3->hobby, '<br>';//输出自定义hobby属性 $lm3->email = '123@.123asd';//自定义email属性并赋值 echo 'custom:', $lm3->email, '<br>';//输出自定义email属性 ?>