码迷,mamicode.com
首页 > 其他好文 > 详细

4月26日 封装

时间:2016-04-28 09:19:19      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

<?php

class Ren
{
 private $name;
 private $sex;
 private $age;

 function __construct($s)
 {
  $this->sex = $s;
 }
 public function Say()
 {
  echo "hello";
 }
 function __destruct() //析构函数,对象销毁前执行
 {
  echo "该对象销毁了!";
 }
 
 /*function SetAge($a) //给age赋值的函数
 {
  if($a>10 && $a<50)
  {
   $this->age = $a;
  }
 }
 function GetAge() //取age的值
 {
  return $this->age;
 }*/
 
 function __set($name,$value) //对类里面的私有成员进行赋值的魔术方法
 {
  if($name == "age")
  {
   if($value>20 && $value<50)
   {
    $this->$name = $value;
   }
  }
  else
  {
   $this->$name = $value;
  }
 }
 
 function __get($name) //对类里面的私有成员进行取值的魔术方法
 {
  return $this->$name;
 }
}

$r = new Ren("男");
//$r->SetAge(40);
$r->Say();
echo $r->sex;

//$r->__set("name","张三");
//$r->name = "李四"; //执行该语句会自动调用__set方法
//$r->sex = "女";
//$r->age = 40;

//echo $r->GetAge();

var_dump($r);

//面向对象三大特性
//封装
//目的:让类更加安全,不让外界直接访问类里面的成员变量
//做法:1.把成员变量做成私有的
//2.做一个方法来实现变量取值或赋值,在方法里面加限制条件

//使用类里面提供的魔术方法也可以实现对私有成员的操作
//__set()特点:会自动执行,把赋值语句中的变量名作为第一个参数,把变量值作为第二个参数调用__set方法
//__get()特点:会自动执行,把取值语句中的变量名作为参数调用__get方法


//继承
//多态

 

 

?>

4月26日 封装

标签:

原文地址:http://www.cnblogs.com/dongqiaozhi/p/5441280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!